AWS Java SDK 需要存储桶所有者完全控制?

Rya*_*yan 5 java amazon-s3 amazon-web-services

我正在将文件推送到 S3 存储桶,而当我的角色被授予写入存储桶的访问权限时,存储桶所有者无法看到这些文件。我不确定为什么会这样,我希望我必须以编程方式强制bucket-owner-full-control.

简单代码 Blob:

      ObjectMetadata metadata = constructMetadata();
      PutObjectRequest request = new PutObjectRequest(bucketName, filename, data, metadata);
      s3Supplier.get().putObject(request);
Run Code Online (Sandbox Code Playgroud)

它上传成功,但存储桶所有者看不到。为什么会这样?

Vik*_*nov 11

PutObjectRequest request = new PutObjectRequest(bucketName, filename, data, metadata).withCannedAcl(CannedAccessControlList.BucketOwnerFullControl);
Run Code Online (Sandbox Code Playgroud)

灵感来自答案


fra*_*ijo 1

S3 对象由写入它们的 AWS 账户拥有。默认情况下,只有对象所有者拥有该对象的所有权限,其他人(包括存储桶所有者)无法访问该对象,除非明确授予访问权限(通过 ACL)。

AWS 文档中的此示例解释了如何向存储桶所有者授予此类对象的访问权限。