
# 获取对象ACL-GetObjectAcl
#### 功能介绍
调用本接口可获取对象ACL配置信息。了解更多对象ACL相关信息，请参见[配置对象ACL](https://support.huaweicloud.com/perms-cfg-obs/obs_40_0005.html)。
#### 多版本
默认情况下，获取最新版本的对象ACL。如果最新版本的对象是删除标记，则返回404 Not Found，错误码为NoSuchKey。如果要获取指定版本的对象ACL，请求可携带versionId消息参数。
#### 授权信息
您必须是对象拥有者或拥有获取对象ACL的权限，才能调用本接口，建议使用IAM或桶策略进行授权。了解更多OBS授权方式请参见[OBS不同权限控制方式的区别](https://support.huaweicloud.com/perms-cfg-obs/obs_40_0001.html)。
- 如果使用**IAM授权** ，那么请在"角色与策略授权"、"身份策略授权"两种IAM授权方式中选择一种，并配置相应权限：
  - 如果使用**角色与策略授权** （旧版IAM，即IAM v3接口），需具备**obs:object:GetObjectAcl** （未开启多版本）、**obs:object:GetObjectVersionAcl** （开启或暂停多版本）权限，授权操作请参见[创建IAM自定义策略](https://support.huaweicloud.com/usermanual-iam/iam_01_0605.html)。
  
  - 如果使用**身份策略授权** （新版IAM，即IAM v5接口），如下表所示，需具备**obs:object:getObjectAcl** （未开启多版本）、**obs:object:getObjectVersionAcl** （开启或暂停多版本）权限，授权操作请参见[创建IAM自定义身份策略](https://support.huaweicloud.com/usermanual-iam5/iam_01_0917.html)。
    
    | 授权项 Action                                                                  | 访问级别 Access Level | 资源类型（\*为必须） Resource Type (\*: required) | [条件键](https://support.huaweicloud.com/api-obs/obs_04_0112.html#ZH-CN_TOPIC_0000002375307974__condition_table) Condition Key                                                                                                                                                                                                                                                                                            | [别名](https://support.huaweicloud.com/iam5_faq/iam_01_1103.html) Alias | 依赖的授权项 Dependencies |
    |:---|:---|:---|:---|:---|:---|
    | obs:object:getObjectAcl（未开启多版本） obs:object:getObjectVersionAcl（开启或暂停多版本） | Read                                                     | object \*                                                                        | [g:EnterpriseProjectId](https://support.huaweicloud.com/usermanual-iam5/iam_01_0934.html#section2)                                                                                                                                                                                                                                                                                                                                                             | -                                                                                                           | -                |
    | obs:object:getObjectAcl（未开启多版本） obs:object:getObjectVersionAcl（开启或暂停多版本） | Read                                                     | -                                                                                | - obs:EpochTime  - obs:SourceIp  - obs:TlsVersion  - obs:CustomDomain   | -                                                                                                           | -                |
       
    
   
- 如果使用**桶策略** 进行授权，需具备**obs:object:GetObjectAcl** （未开启多版本）、**obs:object:GetObjectVersionAcl** （开启或暂停多版本）权限，具体操作请参见[自定义创建桶策略](https://support.huaweicloud.com/usermanual-obs/obs_03_0123.html)。
 
#### URI
GET /{*object_key*}
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-obs/obs_04_0006.html)。调用前需要先[计算API签名](https://support.huaweicloud.com/api-obs/obs_04_0009.html)，并将签名添加到请求中。
您还可以使用[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/OBS/doc?api=GetObjectAcl)在线调试接口。
#### 请求消息样式
```
GET /ObjectName?acl HTTP/1.1 
Host: bucketname.obs.cn-north-4.myhuaweicloud.com 
Date: date
Authorization: authorization
```
#### URI参数（URI Parameters）
该请求需要在URI参数中指定是在获取对象ACL，参数意义如[表1]所示。
 表1URI参数 
| **参数名称**  | **是否必选** | 参数类型   | **描述**                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| acl       | 是        | String | **参数解释：** 指定该请求是获取对象的ACL。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                     |
| versionId | 否        | String | **参数解释：** 指定对象的版本号。如何获取对象的版本ID请参见[列举桶内对象-ListObjects](https://support.huaweicloud.com/api-obs/obs_04_0022.html)。 **约束限制：** 不涉及 **取值范围：** 长度为32的字符串。 **默认取值：** 如果不设置则默认获取最新版本的对象。 |
   
#### 请求头参数（Request headers）
该请求使用公共请求头，具体参见[表3](https://support.huaweicloud.com/api-obs/obs_04_0007.html#ZH-CN_TOPIC_0136436606__table25197309)。
#### 请求体参数（Request body）
该请求消息中不带请求体参数。
#### 响应消息样式
```
HTTP/1.1 status_code
Date: date
Content-Length: length
Content-Type: application/xml 
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<AccessControlPolicy xmlns="http://obs.cn-north-4.myhuaweicloud.com/doc/2015-06-30/"> 
    <Owner> 
        <ID>id</ID> 
    </Owner> 
    <Delivered>true</Delivered>
    <AccessControlList> 
        <Grant> 
            <Grantee> 
                <ID>id</ID> 
            </Grantee> 
            <Permission>permission</Permission> 
        </Grant> 
    </AccessControlList> 
</AccessControlPolicy>
```
#### 响应头 (Response Headers)
该请求的响应消息使用公共响应头，具体请参考[表1](https://support.huaweicloud.com/api-obs/obs_04_0013.html#ZH-CN_TOPIC_0173612084__d0e686)。
除公共响应头 (Response Headers)之外，还可能使用如下[表2]中的消息头。
 表2响应头 (Response Headers) 
| 参数名称             | 参数类型   | 描述                                                                                                                                                               |
|:---|:---|:---|
| x-obs-version-id | String | **参数解释：** 指定对象的版本号。 **取值范围：** 长度为32的字符串。 |
   
#### 响应体 (Response Body)
该请求的响应消息中通过消息元素返回对象的ACL信息，元素的具体意义如[表3]所示。
 表3响应体 
| 参数名称              | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|
| AccessControlList | XML     | **参数解释：** 访问控制列表，记录了对该对象有访问权限的用户列表。AccessControlList是Grant、 Grantee、Permission的父节点，请详见[表4]。                                                                                                                                                                                                                                   |
| ID                | String  | **参数解释：** 用户的DomainId。 **取值范围：** 不涉及                                                                                                                                                                                                                                                   |
| Delivered         | Boolean | **参数解释：** 对象ACL是否继承桶的ACL。 **取值范围：** - true：对象继承桶ACL  - false：对象不继承桶ACL   |
   
 表4AccessControlList参数说明 
| 参数名称       | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|
| Grant      | XML    | **参数解释：** 用于标记用户及用户的权限，Grant是Grantee、Delivered的父节点。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| Grantee    | XML    | **参数解释：** 记录用户信息。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| Permission | String | **参数解释：** 指定的用户对该对象所具有的操作权限。 **取值范围：** - READ：允许被授权者获取对象内容和元数据。  - READ_ACP：允许被授权者读取对象ACL属性。  - WRITE_ACP：允许被授权者更新对象ACL属性。  - FULL_CONTROL：允许被授予者对对象的READ、READ_ACP和WRITE_ACP权限。   |
   
#### 错误响应消息
无特殊错误，所有错误已经包含在[错误码概述](https://support.huaweicloud.com/api-obs/obs_04_0115.html)中。
#### 请求示例
```
GET /object011?acl HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.cn-north-4.myhuaweicloud.com
Accept: */*
Date: Wed, 01 Jul 2015 04:45:55 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:YcmvNQxItGjFeeC1K2HeUEp8MMM=
```
#### 响应示例
```
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: 8DF400000163D3E650F3065C2295674C
x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCS+wsHqRuA2Tx+mXUpNtBbWLPMle9CIx
Content-Type: application/xml
Date: Wed, 01 Jul 2015 04:45:55 GMT
Content-Length: 769
<?xml version="1.0" encoding="utf-8"?>
<AccessControlPolicy xmlns="http://obs.cn-north-4.myhuaweicloud.com/doc/2015-06-30/"> 
  <Owner> 
    <ID>b4bf1b36d9ca43d984fbcb9491b6fce9</ID> 
  </Owner>  
  <Delivered>false</Delivered> 
  <AccessControlList> 
    <Grant> 
      <Grantee> 
        <ID>b4bf1b36d9ca43d984fbcb9491b6fce9</ID> 
      </Grantee>  
      <Permission>FULL_CONTROL</Permission> 
    </Grant>  
    <Grant> 
      <Grantee> 
        <ID>783fc6652cf246c096ea836694f71855</ID> 
      </Grantee>  
      <Permission>READ</Permission>  
      </Grant>  
    <Grant> 
      <Grantee> 
        <Canned>Everyone</Canned> 
      </Grantee>  
      <Permission>READ_ACP</Permission> 
    </Grant> 
  </AccessControlList> 
</AccessControlPolicy>
```
#### 请求示例：已启用版本控制
```
GET /object01?acl&versionId=G001118A6803675AFFFFD3043F7F91D0 HTTP/1.1
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:iqSPeUBl66PwXDApxjRKk6hlcN4=
User-Agent: curl/7.29.0
Host: examplebucket.obs.cn-north-4.myhuaweicloud.com
Date: Wed, 01 Jul 2015 02:37:22 GMT
Content-Type: application/xml
```
#### 响应示例：已启用版本控制
```
HTTP/1.1 200 OK
x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSmpL2dv6zZLM2HmUrXKTAi258MPqmrp
x-obs-request-id: 0000018A2A73AF59D3085C8F8ABF0C65
Server: OBS
Content-Length: 831
Date: Wed, 01 Jul 2015 02:37:22 GMT
x-obs-version-id: G001118A6803675AFFFFD3043F7F91D0
 
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AccessControlPolicy  xmlns="http://obs.myhwclouds.com/doc/2015-06-30/">
    <Owner>
        <ID>d6s58yhnm83f3081577800575ee4cf</ID>
    </Owner>
    <Delivered>false</Delivered>
    <AccessControlList>
        <Grant>
            <Grantee>
                <ID>f262a63g69422e8f330af1349c588f</ID>
            </Grantee>
            <Permission>READ</Permission>
        </Grant>
        <Grant>
            <Grantee>
                <ID>c965gfda2a849422e8f3985562432dsaa</ID>
            </Grantee>
            <Permission>FULL_CONTROL</Permission>
        </Grant>
        <Grant>
            <Grantee>
                <Canned>Everyone</Canned>
            </Grantee>
            <Permission>READ</Permission>
        </Grant>
    </AccessControlList>
</AccessControlPolicy>
```
#### 使用SDK调用接口
建议您使用OBS SDK调用接口。SDK对API进行了封装以简化您的开发工作，直接调用SDK接口函数即可访问OBS，无需手动计算签名。
| [Java](https://support.huaweicloud.com/sdk-java-devg-obs/obs_21_0808.html) | [Python](https://support.huaweicloud.com/sdk-python-devg-obs/obs_22_0923.html) | [C](https://support.huaweicloud.com/sdk-c-devg-obs/obs_20_0316.html) | [Go](https://support.huaweicloud.com/sdk-go-devg-obs/obs_33_0510.html) | BrowserJS不支持 | .NET不支持 | Android不支持 | iOS不支持 | PHP不支持 | [Node.js](https://support.huaweicloud.com/sdk-nodejs-devg-obs/obs_29_0603.html) | [Harmony](https://support.huaweicloud.com/sdk-harmony-devg-obs/obs_34_0410.html) |
|---|---|---|---|---|---|---|---|---|---|---|
   
#### 相关文档
- 了解更多对象ACL相关介绍，请参见[配置对象ACL](https://support.huaweicloud.com/usermanual-obs/zh-cn_topic_0045829106.html)。
- API操作涉及的计费项参见[计费项](https://support.huaweicloud.com/price-obs/obs_42_0002.html)。
 
