我正在尝试将文件上传到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,设置的环境变量优先于任何配置文件。这让我想问,为什么我的密钥没有从环境变量中获取?
答案 0 :(得分:2)
想出来。
如果指定ProfileCredentialsProvider()
,AWS SDK将查找配置文件,无论优先级如何。只需像这样创建一个S3客户端:
AmazonS3 s3Client = new AmazonS3Client();
将检查为凭据指定的各个位置。