Java拒绝AWS S3访问

时间:2020-03-16 16:49:02

标签: java amazon-s3

我正在尝试在Amazon S3上上传文件,但是它返回此错误:

com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: 26B9B4844CEA580C), S3 Extended Request ID: S0Ds3cvubCSZTAd1ESUG5rMRifGLHRAHBviyUHzDVI5W8FQxtRDMBNSrhVme6K86UryWxqORv30=

我已经在AWS上配置了IAM和存储桶,并且使用了良好的访问/秘密(一个aws给了我)。有什么问题?谢谢!

S3Client代码:

s3client = AmazonS3ClientBuilder
    .standard()
    .withRegion(Regions.CA_CENTRAL_1) // The first region to try your request against
    .withForceGlobalBucketAccessEnabled(true) // If a bucket is in a different region, try again in the correct region
    .withCredentials(AWSStaticCredentialsProvider(BasicAWSCredentials(accessKey, secretKey)))
    .build()

上传文件代码:

private fun uploadFileTos3bucket(fileName: String, file: File) {
    s3client.putObject(PutObjectRequest(bucketName, fileName, file)
        .withCannedAcl(CannedAccessControlList.PublicRead))
  }

IAM用户:

https://dotnetfiddle.net/efK1nt

S3权限: enter image description here

1 个答案:

答案 0 :(得分:-1)

我遇到了同样的问题。我使它工作禁用第一个选项

阻止对通过新访问控制列表 (ACL) 授予的存储桶和对象的公开访问

如果您想获得有关默认罐装 ACL 的更多信息,这里是一个 link

如果您不想禁用任何这些政策,您可以使用预签名网址

您可以查看示例 here

相关问题