使用 AWSCredentials 构建 AmazonS3Client 实例的首选方式

Preferred way build an instance of AmazonS3Client with AWSCredentials

AmazonS3Client has been deprecated in favor of AmazonS3ClientBuilder。 AmazonS3Client 构造函数接受了 AWSCredentials 的实例,客户端可以通过该实例传递 AWS 访问和密钥。

AWSCredentials credentialsProvider = ... ;
AmazonS3Client amazonS3Client = new AmazonS3Client(credentialsProvider.getCredentials());

使用 AmazonS3ClientBuilder 时,使用必要的 AWS 凭据实例化 AmazonS3 客户端的首选方法是什么?

根据AWS Documentation,可以使用AmazonS3ClientBuilder如下:

AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                   .withCredentials(new EnvironmentVariableCredentialsProvider())
                   .build();

这里使用的EnvironmentVariableCredentialsProvider,

provides credentials by looking at the: AWS_ACCESS_KEY_ID (or AWS_ACCESS_KEY) and AWS_SECRET_KEY (or AWS_SECRET_ACCESS_KEY) environment variables.

来源:AWS Documentation EnvironmentVariableCredentialsProvider

或者,您可以根据自己的实施调整 AWSCredentialsProvider

You can use this technique to supply credential providers or provider chains that you create by using your own credential provider that implements the AWSCredentialsProvider interface

或者您可以使用亚马逊提供的实现,例如BasicAWSCredentials class 提供:

BasicAWSCredentials credentials = new BasicAWSCredentials("access_key_id", "secret_key_id");
AmazonS3 s3 = AmazonS3ClientBuilder.standard()
    .withCredentials(new AWSStaticCredentialsProvider(credentials))
    .withRegion(Regions.US_WEST_2)
    .build();

实现该接口的更多官方 class 是: