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

Abh*_*jit 0 java amazon-s3 amazon-web-services aws-sdk

AmazonS3Client已被弃用,取而代之的是AmazonS3ClientBuilder。AmazonS3Client 构造函数接受 AWSCredentials 实例,客户端可以通过该实例传递 AWS 访问和密钥。

AWSCredentials credentialsProvider = ... ;
AmazonS3Client amazonS3Client = new AmazonS3Client(credentialsProvider.getCredentials());
Run Code Online (Sandbox Code Playgroud)

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

jAC*_*jAC 5

根据AWS 文档,您可以使用AmazonS3ClientBuilder以下内容:

AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                   .withCredentials(new EnvironmentVariableCredentialsProvider())
                   .build();
Run Code Online (Sandbox Code Playgroud)

这里使用的 EnvironmentVariableCredentialsProvider,

通过查看:AWS_ACCESS_KEY_ID(或 AWS_ACCESS_KEY)和 AWS_SECRET_KEY(或 AWS_SECRET_ACCESS_KEY)环境变量来提供凭证。

来源:AWS 文档 EnvironmentVariableCredentialsProvider

或者,您可以使用自己的实现调整AWSCredentialsProvider

您可以使用此技术来提供您使用实现 AWSCredentialsProvider 接口的凭证提供程序创建的凭证提供程序或提供程序链

或者您可以使用 Amazon 提供的实现,例如提供的BasicAWSCredentials类:

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

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