調用PutBucketInventory介面用於為某個儲存空間(Bucket)配置清單(Inventory)規則。
注意事項
您可以通過清單擷取Bucket中Object的各類資訊,包括Object的數量、大小、儲存類型、加密狀態等。配置清單規則時,有如下注意事項:
只有Bucket的擁有者以及被授予PutBucketInventory許可權的使用者才能發起配置清單規則的請求。
配置清單規則前需產生一個RAM角色,該角色需要擁有讀取源Bucket所有檔案和向目標Bucket寫入檔案的許可權。首次使用清單功能時,建議您通過OSS控制台進行配置。清單規則配置完成後,您可以擷取擁有所有許可權的RAM角色。有關配置清單規則中RAM角色的許可權說明,請參見儲存空間清單。
單個Bucket最多隻能配置1000條清單規則。
配置清單的源Bucket與存放匯出的資訊清單檔所在的目標Bucket必須位於同一個Region。
請求文法
要求標頭中的inventoryId為必選參數,取值與請求參數中的Id保持一致。
僅華北1(青島)、華北5(呼和浩特)、以及德國(法蘭克福)地區支援使用LastModifyBeginTimeStamp、LastModifyEndTimeStamp、LowerSizeBound、UpperSizeBound以及StorageClass選項。
PUT /?inventory&inventoryId=report1 HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: Mon, 31 Oct 2016 12:00:00 GMT
Authorization: authorization string
Content-Length: length
<?xml version="1.0" encoding="UTF-8"?>
<InventoryConfiguration>
<Id>report1</Id>
<IsEnabled>true</IsEnabled>
<Filter>
<Prefix>filterPrefix/</Prefix>
<LastModifyBeginTimeStamp>1637883649</LastModifyBeginTimeStamp>
<LastModifyEndTimeStamp>1638347592</LastModifyEndTimeStamp>
<LowerSizeBound>1024</LowerSizeBound>
<UpperSizeBound>1048576</UpperSizeBound>
<StorageClass>Standard,IA</StorageClass>
</Filter>
<Destination>
<OSSBucketDestination>
<Format>CSV</Format>
<AccountId>1000000000000000</AccountId>
<RoleArn>acs:ram::1000000000000000:role/AliyunOSSRole</RoleArn>
<Bucket>acs:oss:::destination-bucket</Bucket>
<Prefix>prefix1</Prefix>
<Encryption>
<SSE-KMS>
<KeyId>keyId</KeyId>
</SSE-KMS>
</Encryption>
</OSSBucketDestination>
</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>EncryptionStatus</Field>
</OptionalFields>
</InventoryConfiguration>
請求元素
名稱 | 類型 | 是否必選 | 樣本值 | 描述 |
Id | 字串 | 是 | report1 | 自訂清單名稱,要求如下:
|
IsEnabled | 布爾 | 是 | true | 清單功能是否啟用的標識。 有效值:
|
Filter | 容器 | 否 | 不涉及 | 清單篩選的首碼。指定首碼後,清單將篩選出符合首碼設定的對象。 |
Prefix | 字串 | 否 | Pics/ | 篩選規則的匹配首碼。 父節點:Filter |
LastModifyBeginTimeStamp | 字串 | 否 | 1637883649 | 篩選檔案最後修改時間的起始時間戳記,單位為秒。 取值範圍:[1262275200, 253402271999] |
LastModifyEndTimeStamp | 字串 | 否 | 1638347592 | 篩選檔案最後修改時間的終止時間戳記,單位為秒。 取值範圍:[1262275200, 253402271999] |
LowerSizeBound | 字串 | 否 | 1024 | 篩選檔案的最小大小,單位為B。 取值範圍:大於等於0 B,小於等於48.8 TB。 |
UpperSizeBound | 字串 | 否 | 1048576 | 篩選檔案的最大大小,單位為B。 取值範圍:大於0 B,小於等於48.8 TB。 |
StorageClass | 字串 | 否 | Standard,IA | 篩選檔案的儲存類型,支援指定多種儲存類型。 可選值:
|
Destination | 容器 | 是 | 不涉及 | 存放清單結果。 |
OSSBucketDestination | 容器 | 是 | 不涉及 | 清單結果匯出後存放的Bucket資訊。 父節點:Destination |
Format | 字串 | 是 | CSV | 資訊清單檔的檔案格式。 資訊清單檔匯出後的格式為使用GZIP壓縮的CSV檔案。 有效值:CSV 父節點:OSSBucketDestination |
AccountId | 字串 | 是 | 100000000000000 | Bucket所有者授予的賬戶ID。 父節點:OSSBucketDestination |
RoleArn | 字串 | 是 | acs:ram::100000000000000:role/AliyunOSSRole | 具有讀取源Bucket所有檔案和向目標Bucket寫入檔案許可權的角色名稱,格式為 父節點:OSSBucketDestination |
Bucket | 字串 | 是 | acs:oss:::bucket_0001 | 存放匯出的資訊清單檔的Bucket。 父節點:OSSBucketDestination |
Prefix | 字串 | 否 | prefix1/ | 資訊清單檔的儲存路徑首碼。 父節點:OSSBucketDestination |
Encryption | 容器 | 否 | 不涉及 | 資訊清單檔的加密方式。 有效值:
父節點:OSSBucketDestination 有關伺服器端加密的更多資訊,請參見伺服器端加密。 |
SSE-OSS | 容器 | 否 | 不涉及 | 儲存SSE-OSS加密方式的容器。 父節點:Encryption |
SSE-KMS | 容器 | 否 | 不涉及 | 儲存SSE-KMS加密金鑰的容器。 父節點:Encryption |
KeyId | 字串 | 否 | keyId | KMS密鑰ID。 父節點:SSE-KMS |
Schedule | 容器 | 是 | 不涉及 | 存放清單匯出周期資訊的容器。 |
Frequency | 字串 | 是 | Daily | 資訊清單檔匯出的周期。 有效值:
父節點:Schedule |
IncludedObjectVersions | 字串 | 是 | All | 是否在清單中包含Object版本資訊。 有效值:
|
OptionalFields | 容器 | 否 | 不涉及 | 設定清單結果中包含的配置項。 |
Field | 字串 | 否 | Size | 清單結果中包含的配置項。
|
響應元素
此介面僅涉及公用回應標頭,例如Content-Length、Date等。更多資訊,請參見公用回應標頭(Common Response Headers)。
樣本
請求樣本
PUT /?inventory&inventoryId=report1 HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Mon, 31 Oct 2016 12:00:00 GMT Authorization: authorization string Content-Length: length <?xml version="1.0" encoding="UTF-8"?> <InventoryConfiguration> <Id>report1</Id> <IsEnabled>true</IsEnabled> <Filter> <Prefix>Pics/</Prefix> <LastModifyBeginTimeStamp>1637883649</LastModifyBeginTimeStamp> <LastModifyEndTimeStamp>1638347592</LastModifyEndTimeStamp> <LowerSizeBound>1024</LowerSizeBound> <UpperSizeBound>1048576</UpperSizeBound> <StorageClass>Standard,IA</StorageClass> </Filter> <Destination> <OSSBucketDestination> <Format>CSV</Format> <AccountId>100000000000000</AccountId> <RoleArn>acs:ram::100000000000000:role/AliyunOSSRole</RoleArn> <Bucket>acs:oss:::destbucket</Bucket> <Prefix>prefix1/</Prefix> <Encryption> <SSE-KMS> <KeyId>keyId</KeyId> </SSE-KMS> </Encryption> </OSSBucketDestination> </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>EncryptionStatus</Field> </OptionalFields> </InventoryConfiguration>
返回樣本
HTTP/1.1 200 OK x-oss-request-id: 56594298207FB3044385**** Date: Mon, 31 Oct 2016 12:00:00 GMT Content-Length: 0 Server: AliyunOSS
錯誤碼
錯誤碼 | HTTP狀態代碼 | 描述 |
InvalidArgument | 400 | 傳入非法參數。 |
InventoryExceedLimit | 400 | 超出清單配置規則的數量限制。 |
AccessDenied | 403 |
|
InventoryAlreadyExist | 409 | 請求的清單規則已存在。 |