2

我们有一项服务,我们的客户允许我们访问他们的 S3 存储桶,我们将项目推送到这些 S3 存储桶中。我们需要能够做两件事:

  1. 将项目的权限设置为可公开阅读
  2. 将存储桶的所有者设置为对该项目具有完全权限

这是我已经知道的:

我不能有 2 个带有 PUT 的罐装 ACL

问题:

我“可以”设置 ACL 标头,但 AFAIK 在不知道所有者信息(如 cannonical_id 或电子邮件)的情况下无法通过标头设置“所有者拥有完整权限”,对吗?是否有像“public-read”一样的“owner-has-full-permissions”的“uri”版本(例如“http://acs.amazonaws.com/groups/global/AllUsers”)?

我不想进行 2 个单独的调用(一个用于获取存储桶所有者信息),另一个用于放置具有两种权限的项目。

4

1 回答 1

0

我有同样的问题,下面的代码可以获得你需要的权限。

AccessControlList accessControlList = new AccessControlList();
accessControlList.grantPermission(GroupGrantee.AllUsers, Permission.Read);
accessControlList.grantPermission(new CanonicalGrantee(s3Client.getS3AccountOwner()
    .getId()), Permission.FullControl);
putReq.setAccessControlList(accessControlList);
于 2013-07-19T18:04:35.653 回答