首页 文章

需要在S3项目上设置多个固定ACL

提问于
浏览
2

我们有一项服务,我们的客户可以让我们访问他们的S3存储桶,我们将物品推送到那些S3存储桶中 . 我们需要做两件事:

  • 将项目的权限设置为可公开读取

  • 设置存储桶的所有者以拥有该项目的完全权限

这是我已经知道的:

我不能在PUT上有2个canned-ACL

问题:

我“可以”设置ACL标头,但是AFAIK没有办法通过标头设置“owner-have-full-permissions”而不知道有关所有者的信息(如cannonical_id或email),对吗?是否存在“所有者拥有完整权限”的“uri”版本,例如“public-read”(例如“http://acs.amazonaws.com/groups/global/AllUsers”)?

我不想做两个单独的调用(一个用于获取存储桶拥有者信息),另一个用于放置具有这两个权限的项目 .

1 回答

  • 0

    我有同样的问题,以下代码可以获得您需要的权限 .

    AccessControlList accessControlList = new AccessControlList();
    accessControlList.grantPermission(GroupGrantee.AllUsers, Permission.Read);
    accessControlList.grantPermission(new CanonicalGrantee(s3Client.getS3AccountOwner()
        .getId()), Permission.FullControl);
    putReq.setAccessControlList(accessControlList);
    

相关问题