バケット内のオブジェクトのアクセス制御リスト (ACL) をクエリします。
バージョニング
デフォルトでは、GetObjectACL 操作を呼び出してオブジェクトの ACL をクエリすると、オブジェクトの現在のバージョンの ACL のみが返されます。 リクエストで versionId パラメーターを指定して、オブジェクトの指定されたバージョンの ACL をクエリできます。 指定されたバージョンが削除マーカーの場合、Object Storage Service (OSS) は 404 Not Found を返します。
GetObjectACL 操作を呼び出して、ACL が構成されていないオブジェクトの ACL をクエリすると、OSS はこのオブジェクトのデフォルト ACL を返します。 この場合、このオブジェクトの ACL は、オブジェクトが格納されているバケットの ACL と同じです。 たとえば、オブジェクトが格納されているバケットの ACL が非公開の場合、オブジェクトの ACL も非公開になります。
構文
GET /ObjectName?acl HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValueリクエストヘッダー
GetObjectACL リクエストのすべてのヘッダーは、共通のリクエストヘッダーです。 詳細については、「共通リクエストヘッダー」をご参照ください。
レスポンスヘッダー
GetObjectACL リクエストへのレスポンスには、共通レスポンスヘッダーのみが含まれています。 詳細については、「共通レスポンスヘッダー」をご参照ください。
レスポンス要素
要素 | タイプ | サンプル値 | 説明 |
AccessControlList | コンテナー | 該当なし | ACL 情報を格納するコンテナー。 親ノード: AccessControlPolicy |
AccessControlPolicy | コンテナー | 該当なし | GetObjectACL リクエストの結果を格納するコンテナー。 親ノード: なし |
DisplayName | 文字列 | 0022012**** | バケット所有者の名前。 ユーザー ID と同じです。 親ノード: AccessControlPolicy.Owner |
Grant | 列挙型文字列 | private | オブジェクトの ACL。 デフォルト値: default。 有効な値:
親ノード: AccessControlPolicy.AccessControlList |
ID | 文字列 | 0022012**** | バケット所有者のユーザー ID。 親ノード: AccessControlPolicy.Owner |
Owner | コンテナー | 該当なし | バケット所有者に関する情報を格納するコンテナー。 親ノード: AccessControlPolicy |
例
バージョン管理されていないバケット内のオブジェクトの ACL をクエリする
リクエストの例
GET /test-object?acl HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Wed, 29 Apr 2015 05:21:12 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218eレスポンスの例
HTTP/1.1 200 OK x-oss-request-id: 559CC9BDC755F95A64485981 Date: Wed, 29 Apr 2015 05:21:12 GMT Content-Length: 253 Content-Type: application/xml Connection: keep-alive Server: AliyunOSS <?xml version="1.0" ?> <AccessControlPolicy> <Owner> <ID>0022012****</ID> <DisplayName>0022012****</DisplayName> </Owner> <AccessControlList> <Grant>public-read </Grant> </AccessControlList> </AccessControlPolicy>バージョン管理されたバケット内のオブジェクトの ACL をクエリする
リクエストの例
GET /example?acl&versionId=CAEQMhiBgMC1qpSD0BYiIGQ0ZmI5ZDEyYWVkNTQwMjBiNTliY2NjNmY3ZTVk**** HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Tue, 09 Apr 2019 06:30:10 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218eレスポンスの例
HTTP/1.1 200 OK x-oss-version-id: CAEQMhiBgMC1qpSD0BYiIGQ0ZmI5ZDEyYWVkNTQwMjBiNTliY2NjNmY3ZTVk**** x-oss-request-id: 5CAC3BF2B7AEADE017000621 Date: Tue, 09 Apr 2019 06:30:10 GMT Content-Length: 261 Content-Type: application/xml Connection: keep-alive Server: AliyunOSS <?xml version="1.0" encoding="UTF-8"?> <AccessControlPolicy> <Owner> <ID>1234513715092****</ID> <DisplayName>1234513715092****</DisplayName> </Owner> <AccessControlList> <Grant>public-read</Grant> </AccessControlList> </AccessControlPolicy>
OSS SDK
以下のプログラミング言語の OSS SDK を使用して、GetObjectACL 操作を呼び出すことができます。
ossutil
GetObjectACL 操作に対応する ossutil コマンドについては、「get-object-acl」をご参照ください。
エラーコード
エラーコード | HTTP ステータスコード | エラーメッセージ | 説明 |
AccessDenied | 403 | You do not have read acl permission on this object. | GetObjectACL 操作を実行する権限がないために返されるエラーメッセージ。 バケット所有者のみが、GetObjectACL 操作を呼び出してバケット内のオブジェクトの ACL をクエリする権限を持っています。 |
FileAlreadyExists | 409 | The object you specified already exists and is a directory. | ACL をクエリしようとしているオブジェクトが、階層型名前空間機能が有効になっているバケット内のディレクトリであるために返されるエラーメッセージ。 |