设置桶清单
功能介绍
OBS使用PUT操作为一个桶配置清单规则,每个桶最多可以配置10条清单规则。
要使用此操作,需确保执行者有PutBucketInventoryConfiguration操作的权限 。桶拥有者默认具有此权限,并且可以将此权限授予其他人。
请求消息样式
PUT /?inventory&id=configuration-id HTTP/1.1 User-Agent: curl/7.29.0 Host: bucketname.obs.region.example.com Accept: */* Date: date Authorization: authorization string Content-Length: length Expect: 100-continue <InventoryConfiguration> <Id>configuration-id</Id> <IsEnabled>true</IsEnabled> <Filter> <Prefix>inventoryTestPrefix</Prefix> </Filter> <Destination> <Format>CSV</Format> <Bucket>destbucket</Bucket> <Prefix>dest-prefix</Prefix> </Destination> <Schedule> <Frequency>Daily</Frequency> </Schedule> <IncludedObjectVersions>All</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>
请求消息参数
参数 |
描述 |
是否必选 |
---|---|---|
id |
清单配置的id,必须和消息体中的清单配置id一致。 类型:String 规格:最长64字节 默认值:无 有效字符:"a-z"、"A-Z"、"0-9"、"-"、"_"和"." |
是 |
请求消息头
该请求使用公共消息头,具体参见表3。
请求消息元素
在此请求中,需要在请求的消息体中配置桶的清单。清单的配置信息以XML格式上传。具体的配置元素如表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。 |
否 |
响应消息样式
1 2 3 4 5 |
HTTP/1.1 status_code x-obs-request-id: request id x-obs-id-2: id Date: date Content-Length: length |
响应消息头
该请求的响应消息使用公共消息头,具体请参考表1。
响应消息元素
该请求的响应消息中不带有响应元素。
错误响应消息
除了公共的错误码外,此接口还会返回一些其他的错误码。下面列出本接口的一些常见错误,以及可能原因,如表3。
请求示例
PUT /?inventory&id=test_id HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.example.com Accept: */* Date: Tue, 08 Jan 2019 08:17:10 +0000 Authorization: OBS UDSIAMSTUBTEST000001:/e2fqSfzLDb+0M36D4Op/s5KKr0= Content-Length: 600 Expect: 100-continue <InventoryConfiguration> <Id>test_id</Id> <IsEnabled>true</IsEnabled> <Filter> <Prefix>inventoryTestPrefix</Prefix> </Filter> <Destination> <Format>CSV</Format> <Bucket>destbucket</Bucket> <Prefix>dest-prefix</Prefix> </Destination> <Schedule> <Frequency>Daily</Frequency> </Schedule> <IncludedObjectVersions>All</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 3 4 5 6 |
HTTP/1.1 200 OK Server: OBS x-obs-request-id: 000001682C8545B0680893425D60AB83 x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSIGTuRtBfo7lpHSt0ZknhdDHmllwd/p Date: Tue, 08 Jan 2019 08:12:38 GMT Content-Length: 0 |