此操作用來為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="//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="//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