
# 获取桶清单-GetBucketInventory
#### 功能介绍
桶清单功能可以定期生成桶内对象的元数据信息，通过查看这些信息，可以帮助您更好地了解桶内对象的状态，可通过本接口获取桶清单。有关更多桶清单的介绍和使用限制，请参见[桶清单](https://support.huaweicloud.com/usermanual-obs/obs_03_0084.html)。
#### 授权信息
您必须是桶拥有者或拥有获取桶清单的权限，才能调用本接口，建议使用IAM或桶策略进行授权。了解更多OBS授权方式请参见[OBS不同权限控制方式的区别](https://support.huaweicloud.com/perms-cfg-obs/obs_40_0001.html)。
- 如果使用**IAM授权** ，那么请在"角色与策略授权"、"身份策略授权"两种IAM授权方式中选择一种，并配置相应权限：
  - 如果使用**角色与策略授权** （旧版IAM，即IAM v3接口），需具备**obs:bucket:GetBucketInventoryConfiguration** 权限，授权操作请参见[创建IAM自定义策略](https://support.huaweicloud.com/usermanual-iam/iam_01_0605.html)。
  
  - 如果使用**身份策略授权** （新版IAM，即IAM v5接口），如下表所示，需具备**obs:bucket:getBucketInventoryConfiguration** 权限，授权操作请参见[创建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:bucket:getBucketInventoryConfiguration          | Read                                                       | bucket \*                                                                          | - [g:EnterpriseProjectId](https://support.huaweicloud.com/usermanual-iam5/iam_01_0934.html#section2)  - [g:ResourceTag/\<tag-key\>](https://support.huaweicloud.com/usermanual-iam5/iam_01_0934.html#section2)                                  | -                                                                                                              | -             |
    | obs:bucket:getBucketInventoryConfiguration          | Read                                                       | -                                                                                  | - obs:EpochTime  - obs:SourceIp  - obs:TlsVersion  - obs:CustomDomain   | -                                                                                                              | -             |
       
    
   
- 如果使用**桶策略** 进行授权，需具备**obs:bucket:GetBucketInventoryConfiguration** 权限，具体操作请参见[自定义创建桶策略](https://support.huaweicloud.com/usermanual-obs/obs_03_0123.html)。
 
#### URI
GET /
#### 调用方法
请参见[如何调用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=GetBucketInventory)在线调试接口。
#### 请求消息样式
以下为请求消息样例，请将示例中的*BucketName* 修改为您的桶名，*RegionID* 修改为桶所在的区域ID，可参考[支持区域](https://console.huaweicloud.com/apiexplorer/#/endpoint/OBS)获取区域ID。
```
GET /?inventory&id=configuration-id HTTP/1.1
User-Agent: curl/7.29.0
Host: BucketName.obs.RegionID.myhuaweicloud.com 
Accept: */*
Date: GMT Date
Authorization: SignatureValue
```
#### URI参数（URI Parameters）
表1URI参数 
| 参数        | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|:---|
| inventory | 是    | String | **参数解释**： 用于标识API接口与桶清单有关。 **约束限制**： 计算签名时，请在CanonicalizedResource中添加"/*BucketName* /?inventory"，详情参见[签名计算](https://support.huaweicloud.com/api-obs/obs_04_0010.html)。 **取值范围**： inventory **默认取值**： 不涉及 |
| id        | 是    | String | **参数解释：** 需要获取的清单配置的id。 **约束限制：** 不涉及。 **取值范围：** 只能由a-z、A-Z、0-9、-、_和.组成，且长度不超过64字节。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                         |
   
#### 请求头参数（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
Server: OBS
x-obs-request-id: request id
x-obs-id-2: id
Content-Type: application/xml
Date: date
Content-Length: length
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<InventoryConfiguration  xmlns="http://obs.cn-north-4.myhuaweicloud.com/doc/2015-06-30/">
  <Id>configuration-id</Id>
  <IsEnabled>true</IsEnabled>
  <Destination>
    <Format>CSV</Format>
    <Bucket>destbucket</Bucket>
    <Prefix>prefix</Prefix>
  </Destination>
  <Schedule>
    <Frequency>Daily</Frequency>
  </Schedule>
  <IncludedObjectVersions>Current</IncludedObjectVersions>
  <OptionalFields>
    <Field>Size</Field>
    <Field>LastModifiedDate</Field>
    <Field>ETag</Field>
    <Field>StorageClass</Field>
    <Field>IsMultipartUploaded</Field>
    <Field>ReplicationStatus</Field>
    <Field>EncryptionStatus</Field>
  </OptionalFields>
</InventoryConfiguration>
```
#### 响应头 (Response Headers)
该请求的响应消息使用公共响应头，具体请参考[表1](https://support.huaweicloud.com/api-obs/obs_04_0013.html#ZH-CN_TOPIC_0173612084__d0e686)。
#### 响应体 (Response Body)
在此请求返回的响应消息体中包含的配置元素如[表2]。
 表2桶清单响应体 
| 名称                     | 参数类型      | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|
| InventoryConfiguration | Container | **参数解释：** 清单配置。InventoryConfiguration是Id、IsEnabled、Filter、Destination、Schedule、IncludedObjectVersions以及OptionalFields的父节点。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| Id                     | String    | **参数解释：** 清单配置的id，必须和请求参数中的清单配置id一致。 **取值范围：** 只能由a-z、A-Z、0-9、-、_和.组成，且长度不超过64字节。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| IsEnabled              | Boolean   | **参数解释：** 规则是否启用，如果设置为true，则生成清单，反之不生成。 父节点：InventoryConfiguration **取值范围：** - true：生成桶清单。  - false：不生成桶清单。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| Filter                 | Container | **参数解释：** 清单过滤器配置，清单只包含符合过滤器规则的对象（只支持按对象名前缀进行过滤），如果没有配置过滤器，则包含所有对象。 父节点：InventoryConfiguration **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| Prefix                 | String    | **参数解释：** 前缀过滤条件，清单文件中只生成以此前缀开头的对象列表。 父节点：Filter **取值范围：** 不超过1024字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| Schedule               | Container | **参数解释：** 清单文件的生成周期。 父节点：InventoryConfiguration **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| Frequency              | String    | **参数解释：** 清单文件的生成周期，只支持按天和按周生成清单，第一次配置完桶清单，任务会在一个小时内启动，之后每隔一个周期启动一次。 父节点：Schedule **取值范围：** - Daily：按天生成清单。  - Weekly：按周生成清单。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| Destination            | Container | **参数解释：** 清单的目标配置。 父节点：InventoryConfiguration **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| Format                 | String    | **参数解释：** 生成的清单文件的格式，现只支持CSV格式。 父节点：Destination **取值范围：** CSV：CSV格式。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| Bucket                 | String    | **参数解释：** 存放清单文件的目标桶的桶名。 父节点：Destination **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| Prefix                 | String    | **参数解释：** 生成的清单文件对象名会以此前缀开头，如果不配置前缀，则生成的清单文件对象名默认以BucketInventory开头。 父节点：Destination **取值范围：** 不包含\\, \*, ?, ", \<, \>, \| 字符，且最长254字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| IncludedObjectVersions | String    | **参数解释：** 清单文件中包含对象的多版本配置。 父节点：InventoryConfiguration **取值范围：** - All：清单会包含对象所有的版本，清单中**会增加**版本相关的字段：VersionId、IsLatest、和DeleteMarker。  - Current：清单文件中只会列出当前版本信息，**不会**出现与多版本相关的VersionId、IsLatest、DeleteMarker字段。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| OptionalFields         | Container | **参数解释：** 在此选项中可以添加一些额外的对象元数据字段，生成的清单文件中会包含OptionalFields中配置的字段。 父节点：InventoryConfiguration **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| Field                  | String    | **参数解释：** 可选字段类型，OptionalFields可以包含多个Field元素。添加一些额外的对象元数据字段。 父节点：OptionalFields **取值范围：** - Size：对象长度  - LastModifiedDate：对象的创建时间  - ETag：对象的etag  - StorageClass：对象的存储类别  - IsMultipartUploaded：是否多段对象，true或false  - ReplicationStatus：CRR对象的复制状态  - EncryptionStatus：服务端加密方式  - BucketKeyStatus：密钥状态，ENABLED或DISABLED  - UserMeta：自定义元数据  - CRC64：数据内容的CRC64  - ObjectType：对象类型   |
   
#### 错误响应消息
除了公共的错误码外，此接口还会返回一些其他的错误码。下表中列出本接口的一些常见错误，以及可能原因。如[表3]。
 表3获取桶清单的错误码列表 
| 错误码                          | 描述             | HTTP状态码       |
|:---|:---|:---|
| NoSuchInventoryConfiguration | 没有指定Id对应的清单配置。 | 404 Not Found |
   
#### 请求示例
```
GET /?inventory&id=id1 HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.cn-north-4.myhuaweicloud.com
Accept: */*
Date: Tue, 08 Jan 2019 09:32:24 +0000
Authorization: OBS UDSIAMSTUBTEST000001:ySWncC9M08jNsyXdJLSMJkpi7XM=
```
#### 响应示例
```
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: 000001682CB4C2EE6808A0D8DF9F3D00
x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSBjn5O7Jv9CqvUMO0BenehRdil1n8rR
Content-Type: application/xml
Date: Tue, 08 Jan 2019 09:04:30 GMT
Content-Length: 626
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<InventoryConfiguration  xmlns="http://obs.cn-north-4.myhuaweicloud.com/doc/2015-06-30/">
  <Id>id1</Id>
  <IsEnabled>true</IsEnabled>
  <Destination>
    <Format>CSV</Format>
    <Bucket>bucket</Bucket>
    <Prefix>prefix</Prefix>
  </Destination>
  <Schedule>
    <Frequency>Daily</Frequency>
  </Schedule>
  <IncludedObjectVersions>Current</IncludedObjectVersions>
  <OptionalFields>
    <Field>Size</Field>
    <Field>LastModifiedDate</Field>
    <Field>ETag</Field>
    <Field>StorageClass</Field>
    <Field>IsMultipartUploaded</Field>
    <Field>ReplicationStatus</Field>
    <Field>EncryptionStatus</Field>
  </OptionalFields>
</InventoryConfiguration>
```
#### 使用SDK调用接口
建议您使用OBS SDK调用接口。SDK对API进行了封装以简化您的开发工作，直接调用SDK接口函数即可访问OBS，无需手动计算签名。
| [Java](https://support.huaweicloud.com/sdk-java-devg-obs/obs_21_0418.html) | Python不支持 | C不支持 | Go不支持 | BrowserJS不支持 | .NET不支持 | Android不支持 | iOS不支持 | PHP不支持 | Node.js不支持 | Harmony不支持 |
|---|---|---|---|---|---|---|---|---|---|---|
   
#### 相关文档
- 了解更多桶清单相关介绍，请参见[桶清单](https://support.huaweicloud.com/usermanual-obs/obs_03_0084.html)。
- API操作涉及的计费项参见[计费项](https://support.huaweicloud.com/price-obs/obs_42_0002.html)。
 
