ArchiveTransferManagerBuilder Невозможно найти регион через цепочку поставщиков региона
API-интерфейс AWS Glacier выдает ошибку из-за отсутствия региона, даже если я его специально укажу:
EndpointConfiguration endpointConfig = new EndpointConfiguration("https://glacier.us-east-2.amazonaws.com/", "us-east-2");
AmazonGlacier glacierClient = AmazonGlacierClientBuilder.standard()
.withEndpointConfiguration(endpointConfig)
.withCredentials(credentials)
.build();
ArchiveTransferManager xferMgr = new ArchiveTransferManagerBuilder()
.withGlacierClient(glacierClient)
.build();
UploadResult result = xferMgr.upload("Data_Full", "my archive " + (new Date()), new File("C:\\myBigFile"));
Я получаю эту трассировку стека:
com.amazonaws.SdkClientException: невозможно найти регион через цепочку поставщиков региона. Для предоставления региона необходимо указать явный регион в среде компоновщика или установки. в com.amazonaws.client.builder.AwsClientBuilder.setRegion(AwsClientBuilder.java:371) в com.amazonaws.client.builder.AwsClientBuilder.configureMutableProperties(AwsClientBuilder.aentBuilderCuenbuCuD3 (AwsSyncClientBuilder.java:46) по адресу com.amazonaws.services.sqs.AmazonSQSClientBuilder.defaultClient(AmazonSQSClientBuilder.java:44) по адресу com.amazonaws.services.glacier.transfer.ArchiveTransferTliverBiller amazonaws.services.glacier.transfer.ArchiveTransferManagerBuilder.getParams(ArchiveTransferManagerBuilder.java:135) в com.amazonaws.services.glacier.transfer.ArchiveTransferManagerBuilder.build(ArchiveTransilMarag)
Обратите внимание, что я использую API для перечисления хранилищ, и это работает:
AmazonGlacierClientBuilder clientbuilder = AmazonGlacierClientBuilder.standard();
EndpointConfiguration endpointConfig = new EndpointConfiguration("https://glacier.us-east-2.amazonaws.com/", "us-east-2");
clientbuilder.withEndpointConfiguration(endpointConfig);
ProfilesConfigFile cf = new ProfilesConfigFile();
AWSCredentialsProvider credentials = new ProfileCredentialsProvider(cf, "My AWS Profile Name");
clientbuilder.setCredentials(credentials);
AmazonGlacier glacierClient = CustomAmazonGlacierClientBuilder.buildCustomAmazonGlacierClient();
ListVaultsRequest request = new ListVaultsRequest();
ListVaultsResult result = glacierClient.listVaults(request);
Я недавно загрузил библиотеки AWS / Glacier как плагин Eclipse. Он показывает.jar-версию aws-java-sdk-opensdk-1.11.130.jar
Кто-нибудь знает, что я мог бы вставить в код, чтобы удовлетворить требования региона? Я бы предпочел сделать это программно
1 ответ
Я решил это, добавив переменную окружения AWS_REGION. Например, нас-восток-2. При использовании Eclipse вы можете добавить это, используя Run -> Run Configurations.
Я также обновил плагины Eclipse и AWS Eclipse, используя функцию Eclipse Help -> Check for Updates.