如何在AWS S3 Java API中指定区域名称?

时间:2017-07-07 16:21:56

标签: java amazon-web-services aws-sdk

我正在使用AWS Java API for S3。访问密钥,密钥,存储桶名称和区域名称都作为环境变量提供给我的应用程序。

我不确定如何设置区域名称...我目前正在获取AmazonS3Client

return new AmazonS3Client(new BasicAWSCredentials(accessKey, secretKey))

有人可以告诉我如何设置地区名称吗?

3 个答案:

答案 0 :(得分:4)

请注意,如果您将区域作为字符串,则可以执行以下操作:

Regions regions = Regions.fromName('us-west-1');

您可以通过多种方式创建凭据提供程序,包括:

AWSStaticCredentialsProvider credentialsProvider = new AWSStaticCredentialsProvider(
        new BasicAWSCredentials(ACCESS_KEY, SECRET_KEY));

然后(对于你正在做的任何建设者),你可以这样做:

AmazonSNS snsClient = AmazonSNSClientBuilder.standard()
    .withRegion(region)
    .withCredentials(credentialsProvider)
    .build();

答案 1 :(得分:1)

您可以通过client.setRegion(region)之类的内容完成此操作:

AmazonS3Client client = new AmazonS3Client(new BasicAWSCredentials(accessKey, secretKey)); client.setRegion(region); return client;

或者,new AmazonS3Client(new BasicAWSCredentials(accessKey, secretKey))从以下选择区域信息,如果您尚未提供(它尝试从1到3搜索):

1。)EnvironmentVariableCredentialsProvider()

2。)SystemPropertiesCredentialsProvider()

3。)EC2实例

但是现在不推荐使用此方法,您现在应该使用:

AmazonS3 amazonS3 = AmazonS3ClientBuilder.standard() .withRegion(Regions.US_EAST_1) .build();

答案 2 :(得分:0)

看一下AWS代码目录。有许多这样做的例子:

https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/java/example_code/s3/src/main/java/aws/example/s3

希望这会有所帮助