AWS ProfileCredentialsProvider无法获取凭据

时间:2016-07-25 21:26:00

标签: java amazon-web-services amazon-s3

我正在尝试将文件上传到S3。这样做的代码如下:

AmazonS3 s3Client = new AmazonS3Client(new ProfileCredentialsProvider());
String key = String.format(Constants.KEY_NAME + "/%s/%s", activity_id, aFile.getName());
s3Client.putObject(Constants.BUCKET_NAME, key, aFile.getInputStream(), new ObjectMetadata());

我遇到的问题是我的ProfileCredentialsProvider无法访问我的AWS密钥。我已经设置了我的环境变量:

AWS_ACCESS_KEY=keys go here
AWS_SECRET_KEY=keys go here
AWS_ACCESS_KEY_ID=keys go here
AWS_DEFAULT_REGION=us-east-1
AWS_SECRET_ACCESS_KEY=keys go here

根据Amazon's Documentation,设置的环境变量优先于任何配置文件。这让我想问,为什么我的密钥没有从环境变量中获取?

1 个答案:

答案 0 :(得分:2)

想出来。

如果指定ProfileCredentialsProvider(),AWS SDK将查找配置文件,无论优先级如何。只需像这样创建一个S3客户端:

AmazonS3 s3Client = new AmazonS3Client();

将检查为凭据指定的各个位置。