调用GetObjectACL接口获取存储空间(Bucket)下某个文件(Object)的访问权限(ACL)。
版本控制
调用GetObjectACL接口时,默认只能获取Object当前版本的ACL。您可以通过指定versionId参数来获取指定Object版本的ACL。如果Object的对应版本为删除标记(Delete Marker),则OSS将返回404 Not Found。
如果一个Object从未设置过ACL,则调用GetObjectACL时,返回的ObjectACL为default,表示该Object的ACL遵循Bucket ACL。即如果Bucket的访问权限是private,则该Object的访问权限也是private。
请求语法
GET /ObjectName?acl HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
请求头
此接口仅涉及公共请求头。更多信息,请参见公共请求头(Common Request Headers)。
响应头
此接口仅包含公共响应头。更多信息,请参见公共响应头(Common Response Headers)。
响应元素
名称 | 类型 | 示例值 | 描述 |
AccessControlList | 容器 | 不涉及 | 存储ACL信息的容器。 父节点:AccessControlPolicy |
AccessControlPolicy | 容器 | 不涉及 | 保存Get Object ACL结果的容器。 父节点:None |
DisplayName | 字符串 | 0022012**** | Bucket拥有者的名称,与用户ID保持一致。 父节点:AccessControlPolicy.Owner |
Grant | 枚举字符串 | private | Object的ACL权限。 有效值:
父节点:AccessControlPolicy.AccessControlList |
ID | 字符串 | 0022012**** | Bucket拥有者的用户ID。 父节点:AccessControlPolicy.Owner |
Owner | 容器 | 不涉及 | 保存Bucket拥有者信息的容器。 父节点:AccessControlPolicy |
示例
未开启版本控制
请求示例
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: OSS qn6q**************:77Dv****************
返回示例
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>
已启用版本控制
请求示例
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: OSS qn6q**************:77Dv****************
返回示例
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>
SDK
此接口所对应的各语言SDK如下:
错误码
错误码 | HTTP状态码 | 错误信息 | 描述 |
AccessDenied | 403 | You do not have read acl permission on this object. | 没有操作权限。只有Bucket的拥有者才能使用GetObjectACL接口来获取该Bucket下某个Object的ACL。 |
FileAlreadyExists | 409 | The object you specified already exists and is a directory. | Bucket开启分层命名空间后,当您要获取该Bucket下某个Object的访问权限时,如果设置的Object为目录,则返回该错误。 |