获取桶清单
功能介绍
OBS使用GET操作来获取指定桶的某个清单配置。
要正确执行此操作,需要确保执行者有GetBucketInventoryConfiguration权限。桶拥有者默认具有此权限,并且可以将此权限授予其他人。
有关权限控制的更多信息请参考《对象存储服务权限配置指南》的OBS权限控制概述章节。
请求消息样式
GET /?inventory&id=configuration-id HTTP/1.1 User-Agent: curl/7.29.0 Host: bucketname.obs.cn-north-4.myhuaweicloud.com Accept: */* Date: date Authorization: authorization string
请求消息参数
参数 |
描述 |
是否必选 |
---|---|---|
id |
需要获取的清单配置的id。 类型:String 规格:最长64字节 默认值:无 有效字符:"a-z"、"A-Z"、"0-9"、"-"、"_"和"." |
是 |
请求消息头
该请求使用公共消息头,具体参见表3。
请求消息元素
此请求消息中不使用消息元素。
响应消息样式
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> |
响应消息头
该请求的响应消息使用公共消息头,具体请参考表1。
响应消息元素
在此请求返回的响应消息体中包含的配置元素如表2。
名称 |
描述 |
---|---|
InventoryConfiguration |
清单配置。 类型:Container 父节点:无 子节点:Id、IsEnabled、Filter、Destination、Schedule、IncludedObjectVersions以及OptionalFields |
Id |
清单配置的id,必须和请求参数中的清单配置id一致。 类型:String 规格:最长64字节 默认值:无 有效字符:"a-z"、"A-Z"、"0-9"、"-"、"_"和"." 父节点:InventoryConfiguration |
IsEnabled |
规则是否启用,如果设置为true,则生成清单,反之不生成。 类型:Boolean 有效值:true、false 父节点:InventoryConfiguration |
Filter |
清单过滤器配置,清单只包含符合过滤器规则的对象(只支持按对象名前缀进行过滤),如果没有配置过滤器,则包含所有对象。 类型:Container 父节点:InventoryConfiguration 子节点:Prefix |
Prefix |
前缀过滤条件,清单文件中只生成以此前缀开头的对象列表。 类型:String 父节点:Filter |
Schedule |
清单文件的生成周期。 类型:Container 父节点:InventoryConfiguration 子节点:Frequency |
Frequency |
清单文件的生成周期,只支持按天和按周生成清单,第一次配置完桶清单,任务会在一个小时内启动,之后每隔一个周期启动一次。 类型:String 父节点:Schedule 有效值:Daily、Weekly |
Destination |
清单的目标配置。 类型:Container 父节点:InventoryConfiguration |
Format |
生成的清单文件的格式,现只支持CSV格式。 类型:String 父节点:Destination 有效值:CSV |
Bucket |
存放清单文件的目标桶的桶名。 类型:String 父节点:Destination |
Prefix |
生成的清单文件对象名会以此前缀开头,如果不配置前缀,则生成的清单文件对象名默认以BucketInventory开头。 类型:String 父节点:Destination |
IncludedObjectVersions |
清单文件中包含对象的多版本配置。
类型:String 父节点:InventoryConfiguration 有效值:All、Current |
OptionalFields |
在此选项中可以添加一些额外的对象元数据字段,生成的清单文件中会包含OptionalFields中配置的字段。 类型:Container 父节点:InventoryConfiguration 子节点:Field |
Field |
可选字段类型,OptionalFields可以包含多个Field元素。 类型:String 父节点:OptionalFields 有效值:Size、LastModifiedDate、StorageClass、ETag、IsMultipartUploaded、ReplicationStatus、EncryptionStatus。 |
错误响应消息
除了公共的错误码外,此接口还会返回一些其他的错误码。下表中列出本接口的一些常见错误,以及可能原因。如表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> |