以下是我的Java代码:
AmazonS3 conn = new AmazonS3Client();
AmazonS3URI uri = new AmazonS3URI(s3uri);
ObjectListing objects = conn.listObjects(uri.getBucket(), uri.getKey());
这是一个非常简单的任务,我尝试使用AmazonS3 Java访问S3,但这一行conn.listObjects
始终失败,并给出了以下例外:
Exception in thread "main" com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: XXXXXXXX), S3 Extended Request ID: xxxxxxxxx
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1389)
at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:902)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:607)
at com.amazonaws.http.AmazonHttpClient.doExecute(AmazonHttpClient.java:376)
at com.amazonaws.http.AmazonHttpClient.executeWithTimer(AmazonHttpClient.java:338)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:287)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3826)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3778)
at com.amazonaws.services.s3.AmazonS3Client.listObjects(AmazonS3Client.java:610)
at com.amazonaws.services.s3.AmazonS3Client.listObjects(AmazonS3Client.java:588)
有什么帮助吗?罪魁祸首是什么?
发布于 2017-03-15 02:17:27
AWS有一个DefaultAWSCredentialsProviderChain
,它按照以下顺序检查凭据:
~/.aws/credentials
)AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
容器服务传递凭据。在查询所需的配置文件之前,可能会设置凭据。
检查所使用的凭据的一种方法是使用aws iam get-user
命令显示当前用户。您还可以使用GetUser()
调用在Java中进行尝试。
发布于 2020-10-22 17:38:30
如果这对任何人都有帮助--我得到了这个错误,因为当没有指定服务器端加密时,当试图上传到桶时没有指定服务器端加密时,桶策略被设置为拒绝。
https://stackoverflow.com/questions/42798926
复制相似问题