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.

Другие вопросы по тегам