此操作用来为Bucket配置Bucket清单规则。
通过OOS Bucket清单功能可以获取Bucket中指定文件(Object)的大小、存储类型等信息。相对于GET Bucket (List Objects)接口,Bucket清单结果文件可以按天或者按周以CSV的形式输出指定文件的相关信息,且不会影响Bucket的请求速率。在需要列举海量Object的场景中,推荐使用Bucket清单功能。
说明每个Bucket最多可以配置10条Bucket清单规则。
请求语法
PUT /?inventory&id=id HTTP/1.1
Host: BucketName.oos-cn.ctyunapi.cn
Date: date
Content-MD5:md5
Content-Length:length
Authorization: SignatureValue
<?xml version="1.0" encoding="UTF-8"?>
<InventoryConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Destination>
<OOSBucketDestination>
<Bucket>BucketName</Bucket>
<Format>format</Format>
<Prefix>prefix</Prefix>
</OOSBucketDestination>
</Destination>
<IsEnabled>IsEnabled</IsEnabled>
<Filter>
<Prefix>prefix</Prefix>
</Filter>
<Id>Id</Id>
<OptionalFields>
<Field>field</Field>
……
<Field>field</Field>
</OptionalFields>
<Schedule>
<Frequency>frequency</Frequency>
</Schedule>
</InventoryConfiguration>
请求头
名称 | 描述 | 是否必须 |
---|---|---|
id | 指定的清单名称,清单名称在当前Bucket下必须唯一。 类型:字符串。 取值:只允许使用小写字母、数字、短横线(-)和下划线(),且不能以短横线(-)或下划线()开头或结尾,1~64个字符。 |
是 |
请求参数
名称 描述 是否必须 InventoryConfiguration 清单配置的容器。
类型:容器。
子节点:Destination、IsEnabled、Filter、Id、OptionalFields、Schedule。
是 Destination 存放清单结果的容器。
类型:容器。
父节点:InventoryConfiguration。
子节点:OOSBucketDestination。
是 OOSBucketDestination 存放清单结果的Bucket信息。
类型:容器。
父节点:Destination。
子节点:Bucket、Format、Prefix。
是 Bucket 指定存放清单结果文件的Bucket。
类型:字符串。
取值:格式为arn:ctyun:oos:::bucketname,bucketname为已经创建的Bucket名字。
父节点:OOSBucketDestination。
是 Format 指定清单结果文件的类型。
类型:字符串。
取值:CSV。
父节点:OOSBucketDestination。
是 Prefix 指定清单结果文件的存储路径前缀。
类型:字符串。
取值:0~512个字符。
父节点:OOSBucketDestination。
否 IsEnabled 指定清单功能是否启用。
类型:布尔型
取值:
true:启用清单功能。
false:不启用清单功能。
父节点:InventoryConfiguration。
是 Filter 清单筛选的前缀。
说明指定前缀后,清单将筛选出符合前缀设置的文件。
类型:容器。
父节点:InventoryConfiguration。
子节点:Prefix。
否 Prefix 指定筛选规则的匹配前缀。
类型:字符串。
取值:0~1024个字符。
说明如果未指定筛选规则的匹配前缀,则匹配源Bucket中的所有文件。如果源Bucket没有任何文件,或清单设置的前缀没有匹配到任何文件,则会生成相应文件和文件夹,但清单结果文件中无内容。
父节点:Filter。
否 Id 指定的清单名称,清单名称在当前Bucket下必须全局唯一。
注意必须与请求头中的Id相同。
类型:字符串。
取值:只允许使用小写字母、数字、短横线(-)和下划线(_),且不能以短横线(-)或下划线(_)开头或结尾,1~64个字符。
父节点:InventoryConfiguration。
是 OptionalFields 清单结果配置项的容器。
类型:容器。
父节点:InventoryConfiguration。
子节点:Field。
否 Field 设置清单结果中包含配置项,可以设置多个配置项。
类型:字符串。
取值:
Size:Object的大小。
LastModifiedDate:Object最后一次修改时间。
ETag:Object的ETag值,用于标识Object的内容。
StorageClass:Object的存储类型。
IsMultipartUploaded:是否为通过分片上传方式上传的Object。
说明如果未设置配置项,清单默认输出源Bucket和Key(文件名称)。
父节点:OptionalFields。
否 Schedule 存放清单结果导出周期的容器。
类型:容器。
父节点:InventoryConfiguration。
子节点:Frequency。
是 Frequency 指定清单结果文件导出的周期。
类型:字符串。
取值:
Daily:按天导出清单结果文件。
Weekly:按周导出清单文件。清单规则开启当天会根据清单规则启动一次清单导出任务,第二天启动周期性清单导出任务。例如周一开启清单规则,周一当天会启动清单导出任务,后期会按每周二启动清单导出任务。
说明当前的清单结果文件导出完成后,才会创建新的清单任务。如果Object较多时(数量大于10亿),建议按周导出清单结果文件。
父节点:Schedule。
是
请求示例
PUT /?inventory&id=1 HTTP/1.1
Host: example-bucket.oos-cn.ctyunapi.cn
Date: Wed, 23 Aug 2023 07:14:20 GMT
Connection: keep-alive
Content-Length: 466
Authorization: SignatureValue
<?xml version="1.0" encoding="UTF-8"?>
<InventoryConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Destination>
<OOSBucketDestination>
<Bucket>arn:ctyun:oos:::docs</Bucket>
<Format>CSV</Format>
<Prefix>Inventory-</Prefix>
</OOSBucketDestination>
</Destination>
<Filter>
<Prefix></Prefix>
</Filter>
<Id>1</Id>
<IsEnabled>true</IsEnabled>
<OptionalFields>
<Field>Size</Field>
</OptionalFields>
<Schedule>
<Frequency>Daily</Frequency>
</Schedule>
</InventoryConfiguration>
响应示例
HTTP/1.1 200 OK
Date: Wed, 23 Aug 2023 07:14:20 GMT
x-amz-request-id: 16b538e3df744c04e02c23343a373a19353125392e2f48341e
Content-Length: 0
Server: CTYUN