全部产品
Search
文档中心

对象存储 OSS:GetObjectACL

更新时间:Aug 29, 2023

调用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权限。

有效值:

  • default(默认值):继承Bucket ACL

  • private:私有

  • public-read:公共读

  • public-read-write:公共读写

父节点: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 qn6qrrqxo2oawuk53otfjbyc:CTkuxpLAi4XZ+WwIfNm0Fmgb****

    返回示例

    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 qctg2ns3l8u51iu:w4DK66Kb/0M9GJKdsrpNs8l1****

    返回示例

    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为目录,则返回该错误。