我使用aws-java-sdk版本1.11.104。按照AWS credentials doc默认的区域是us-east-1
,但是当我不用手动设置的区域,当我创建一个客户端,就像这样:以编程方式设置AWS区域
AWSCredentialsProvider awsCredentialsProvider =
new AWSStaticCredentialsProvider(new BasicAWSCredentials(awsAccessKey, awsSecretKey));
AmazonS3 s3Client =
AmazonS3ClientBuilder.standard().withCredentials(awsCredentialsProvider).build();
我得到这个错误:
com.amazonaws.SdkClientException:
Unable to find a region via the region provider chain.
Must provide an explicit region in the builder or setup environment to supply a region.
为什么不使用默认区域?
我试着在我的代码之前添加以下内容,但它仍然不起作用。
System.setProperty(SDKGlobalConfiguration.AWS_REGION_ENV_VAR, "us-east-1");
如何编程设置AWS区域?(我想在运行时为我的项目的所有类设置它)。
谢谢。
编辑:
我知道我可以在客户的建设者用.withRegion()
,但我期待一个默认的区域,或者,该区域由一个环境变量通过默认区域提供环比回升。
第二个问题http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/client/builder/AwsClientBuilder.html#withRegion-com.amazonaws.regions.Regions- –
1日问题HTTP: //docs.aws.amazon.com/sdk-for-java/v1/developer-guide/java-dg-region-selection.html –
http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/ com/amazonaws/client/builder/AwsClientBuilder.html#setRegion-java.lang.String- – alfasin