获取桶清单-GetBucketInventory
功能介绍
桶清单功能可以定期生成桶内对象的元数据信息,通过查看这些信息,可以帮助您更好地了解桶内对象的状态,可通过本接口获取桶清单。有关更多桶清单的介绍和使用限制,请参见桶清单。
授权信息
您必须是桶拥有者或拥有获取桶清单的权限,才能调用本接口,建议使用IAM或桶策略进行授权。了解更多OBS授权方式请参见OBS不同权限控制方式的区别。
- 如果使用IAM授权,那么请在“角色与策略授权”、“身份策略授权”两种IAM授权方式中选择一种,并配置相应权限:
- 如果使用角色与策略授权(旧版IAM,即IAM v3接口),需具备obs:bucket:GetBucketInventoryConfiguration权限,授权操作请参见创建IAM自定义策略。
- 如果使用身份策略授权(新版IAM,即IAM v5接口),如下表所示,需具备obs:bucket:getBucketInventoryConfiguration权限,授权操作请参见创建IAM自定义身份策略。
授权项
Action
访问级别
Access Level
资源类型(*为必须)
Resource Type (*: required)
Condition Key
Alias
依赖的授权项
Dependencies
obs:bucket:getBucketInventoryConfiguration
Read
bucket *
-
-
-
- obs:EpochTime
- obs:SourceIp
- obs:TlsVersion
- obs:CustomDomain
- 如果使用桶策略进行授权,需具备obs:bucket:GetBucketInventoryConfiguration权限,具体操作请参见自定义创建桶策略。
URI
GET /
请求消息样式
以下为请求消息样例,请将示例中的BucketName修改为您的桶名,RegionID修改为桶所在的区域ID,可参考支持区域获取区域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)
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| id | 是 | String | 参数解释: 需要获取的清单配置的id。 约束限制: 不涉及。 取值范围: 只能由"a-z"、"A-Z"、"0-9"、"-"、"_"和".组成,且长度不超过64字节。 默认取值: 不涉及。 |
请求头参数(Request headers)
该请求使用公共请求头,具体参见表3。
请求体参数(Request body)
该请求消息中不带请求体参数。
响应消息样式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | 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。
响应体 (Response Body)
在此请求返回的响应消息体中包含的配置元素如表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是IsEnabled的父节点。 取值范围:
|
| Filter | Container | 参数解释: 清单过滤器配置,清单只包含符合过滤器规则的对象(只支持按对象名前缀进行过滤),如果没有配置过滤器,则包含所有对象。InventoryConfiguration是Filter的父节点。Prefix是Filter的子节点。 取值范围: 不涉及。 |
| Prefix | String | 参数解释: 前缀过滤条件,清单文件中只生成以此前缀开头的对象列表。Filter是Prefix的父节点。 取值范围: 不超过1024字符。 |
| Schedule | Container | 参数解释: 清单文件的生成周期。InventoryConfiguration是Schedule的父节点。Frequency是Schedule的子节点。 取值范围: 不涉及。 |
| Frequency | String | 参数解释: 清单文件的生成周期,只支持按天和按周生成清单,第一次配置完桶清单,任务会在一个小时内启动,之后每隔一个周期启动一次。Schedule是Frequency的父节点。 取值范围:
|
| Destination | Container | 参数解释: 清单的目标配置。InventoryConfiguration是Destination的父节点。 取值范围: 不涉及。 |
| Format | String | 参数解释: 生成的清单文件的格式,现只支持CSV格式。Destination是Format的父节点。 取值范围: CSV:CSV格式。 |
| Bucket | String | 参数解释: 存放清单文件的目标桶的桶名。Destination是Bucket的父节点。 取值范围: 不涉及。 |
| Prefix | String | 参数解释: 生成的清单文件对象名会以此前缀开头,如果不配置前缀,则生成的清单文件对象名默认以BucketInventory开头。Destination是Prefix的父节点。 取值范围: 不包含\, *, ?, ", <, >, | 字符,且最长254字符。 |
| IncludedObjectVersions | String | 参数解释: 清单文件中包含对象的多版本配置。InventoryConfiguration是IncludedObjectVersions的父节点。 取值范围:
|
| OptionalFields | Container | 参数解释: 在此选项中可以添加一些额外的对象元数据字段,生成的清单文件中会包含OptionalFields中配置的字段。InventoryConfiguration是OptionalFields的父节点,Field是OptionalFields的子节点。 取值范围: 不涉及。 |
| Field | String | 参数解释: 可选字段类型,OptionalFields可以包含多个Field元素。添加一些额外的对象元数据字段。 取值范围:
|
错误响应消息
除了公共的错误码外,此接口还会返回一些其他的错误码。下表中列出本接口的一些常见错误,以及可能原因。如表3。
请求示例
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=
响应示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | 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,无需手动计算签名。
| Python不支持 | C不支持 | Go不支持 | BrowserJS不支持 | .NET不支持 | Android不支持 | iOS不支持 | PHP不支持 | Node.js不支持 | Harmony不支持 |