edit-icon download-icon

GetObjectACL

最終更新日: Aug 01, 2018

GetObjectACL はバケット内のオブジェクトへのアクセス権限を取得します。

リクエスト構文

  1. GET /ObjectName?acl HTTP/1.1
  2. Host: BucketName.oss-cn-hangzhou.aliyuncs.com
  3. Date: GMT Date
  4. Authorization: SignatureValue

レスポンスの要素

名前 説明
AccessControlList Container ACL 情報の格納に使用されるコンテナー。
親ノード: AccessControlPolicy
AccessControlPolicy Container GetObjectACL の結果を保存するコンテナーを指定します。
親ノード: なし
DisplayName String バケットオーナーの名前 (現在、この名前はバケットオーナー ID と同じです)。
親ノード: AccessControlPolicy.Owner
Grant Enumerating string オブジェクトの ACL 権限を指定します。
有効な値: private、public-read、public-read-write
親ノード: AccessControlPolicy.AccessControlList
ID String バケットオーナーのユーザー ID。
親ノード: AccessControlPolicy.Owner
Owner Container バケットオーナーに関する情報の保存に使用されるコンテナー。
親ノード: AccessControlPolicy

詳細分析

  • GetObjectACL を使用してバケット内のオブジェクトの ACL を取得できるのは、バケットオーナーだけです。バケットオーナー以外が GetObjectACL リクエストを送信した場合は、403 Forbidden メッセージが返されます。エラーコードは AccessDenied です。表示されるプロンプトは “You do not have read acl permission on this object” です。
  • GetObjectACL リクエストを送信したがオブジェクトの ACL が設定されていない場合は、OSS から返される ObjectACL がデフォルトになります。これは、このオブジェクトの ACL がバケット ACL と同じであることを示しています。つまり、バケットのアクセス権限が非公開の場合はこのオブジェクトのアクセス権限も非公開になり、バケットのアクセス権限が公開読み書きの場合はこのオブジェクトのアクセス権限も公開読み書きになります。

リクエストの例:

  1. GET /test-object?acl HTTP/1.1
  2. Host: oss-example.oss-cn-hangzhou.aliyuncs.com
  3. Date: Wed, 29 Apr 2015 05:21:12 GMT
  4. Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:CTkuxpLAi4XZ+WwIfNm0FmgbrQ0=

レスポンスの例:

  1. HTTP/1.1 200 OK
  2. x-oss-request-id: 559CC9BDC755F95A64485981
  3. Date: Wed, 29 Apr 2015 05:21:12 GMT
  4. Content-Length: 253
  5. Content-Tupe: application/xml
  6. Connection: keep-alive
  7. Server: AliyunOSS
  8. <?xml version="1.0" ?>
  9. <AccessControlPolicy>
  10. <Owner>
  11. <ID>00220120222</ID>
  12. <DisplayName>00220120222</DisplayName>
  13. </Owner>
  14. <AccessControlList>
  15. <Grant>public-read </Grant>
  16. </AccessControlList>
  17. </AccessControlPolicy>