2

私たちの顧客が S3 バケットへのアクセスを許可し、それらの S3 バケットにアイテムをプッシュするサービスがあります。次の 2 つのことを実行できる必要があります。

  1. アイテムのアクセス許可を一般公開できるように設定する
  2. バケットの所有者がアイテムに対する完全な権限を持つように設定します

これが私がすでに知っていることです:

PUT で既定の ACL を 2 つ持つことはできません

問題:

ACLヘッダーを「設定できました」が、所有者に関する情報(cannonical_idやemailなど)を知らずにヘッダーを介して「所有者-has-full-permissions」を設定する方法はありません。正しいですか?"public-read" のような "owner-has-full-permissions" の "uri" バージョンはありますか (例: "http://acs.amazonaws.com/groups/global/AllUsers")?

2 つの別々の呼び出し (1 つはバケットの所有者情報を取得するため) と、もう 1 つは両方の権限を持つアイテムを配置するための呼び出しを行う必要はありません。

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 に答える