調用PutBucketInventory介面用於為某個儲存空間(Bucket)配置清單(Inventory)規則。
注意事項
您可以通過清單擷取Bucket中Object的各類資訊,包括Object的數量、大小、儲存類型、加密狀態等。配置清單規則時,有如下注意事項:
許可權說明
阿里雲帳號預設擁有全部許可權。阿里雲帳號下的RAM使用者或RAM角色預設沒有任何許可權,需要阿里雲帳號或帳號管理員通過RAM Policy或Bucket Policy授予操作許可權。
API | Action | 說明 |
PutBucketInventory | oss:PutBucketInventory | 配置Bucket的清單(Inventory)規則。 |
請求文法
要求標頭中的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>
<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>TransistionTime</Field>
<Field>ETag</Field>
<Field>StorageClass</Field>
<Field>IsMultipartUploaded</Field>
<Field>EncryptionStatus</Field>
</OptionalFields>
<IncrementalInventory>
<IsEnabled>true</IsEnabled>
<Schedule>
<Frequency>600</Frequency>
</Schedule>
<OptionalFields>
<Field>SequenceNumber</Field>
<Field>RecordType</Field>
<Field>RecordTimestamp</Field>
<Field>Requester</Field>
<Field>RequestId</Field>
<Field>SourceIp</Field>
<Field>Size</Field>
<Field>StorageClass</Field>
<Field>LastModifiedDate</Field>
<Field>ETag</Field>
<Field>IsMultipartUploaded</Field>
<Field>ObjectType</Field>
<Field>ObjectAcl</Field>
<Field>Crc64</Field>
<Field>EncryptionStatus</Field>
</OptionalFields>
</IncrementalInventory>
</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 | 清單結果中包含的配置項。
|
IncrementalInventory | 容器 | 否 | 不涉及 | 增量清單的配置容器。 |
IsEnabled | 布爾 | 是 | true | 是否開啟增量清單。取值:
當取值為 true 時,增量清單啟用,即使清單功能開關InventoryConfiguration/IsEnabled=false,增量清單仍會生效。 父節點:IncrementalInventory |
Schedule | 容器 | 是 | 不涉及 | 增量清單匯出周期資訊的容器。 父節點:IncrementalInventory |
Frequency | 正整數 | 是 | 600 | 增量清單的匯出頻率,單位為秒。 系統當前以 600 秒為固定周期,每個周期自動建立一個目錄首碼,並產生對應的 manifest 檔案及該周期內產生的多份 CSV 檔案。暫不支援自訂頻率設定。 父節點:Schedule |
OptionalFields | 容器 | 否 | 不涉及 | 差異清查檔案屬性的配置容器。 父節點:IncrementalInventory |
Field | 字串 | 否 | Size | 增量清單中包含的配置項。 父節點:OptionalFields
|
響應元素
此介面僅涉及公用回應標頭,例如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>TransistionTime</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
配置增量清單規則
請求樣本
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>Report-1</Id> <IsEnabled>true</IsEnabled> <Filter> <Prefix>test</Prefix> </Filter> <Destination> <OSSBucketDestination> <Format>CSV</Format> <AccountId>12xxxxxx29</AccountId> <RoleArn>acs:ram::12xxxxxx29:role/bucket-inventory-role</RoleArn> <Bucket>acs:oss:::test-inc-bi-bj</Bucket> <Prefix>Report-1</Prefix> </OSSBucketDestination> </Destination> <Schedule> <Frequency>Weekly</Frequency> </Schedule> <IncludedObjectVersions>All</IncludedObjectVersions> <OptionalFields> <Field>Size</Field> <Field>LastModifiedDate</Field> <Field>ETag</Field> <Field>StorageClass</Field> </OptionalFields> <IncrementalInventory> <IsEnabled>true</IsEnabled> <Schedule> <Frequency>600</Frequency> </Schedule> <OptionalFields> <Field>SequenceNumber</Field> <Field>RecordType</Field> <Field>RecordTimestamp</Field> <Field>Requester</Field> <Field>RequestId</Field> <Field>SourceIp</Field> <Field>Size</Field> <Field>StorageClass</Field> <Field>LastModifiedDate</Field> <Field>ETag</Field> <Field>IsMultipartUploaded</Field> <Field>ObjectType</Field> <Field>ObjectAcl</Field> <Field>Crc64</Field> <Field>EncryptionStatus</Field> </OptionalFields> </IncrementalInventory> </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
SDK
此介面所對應的各語言SDK如下:
命令列工具ossutil
PutBucketInventory介面所對應的ossutil命令,請參見put-bucket-inventory。
錯誤碼
錯誤碼 | HTTP狀態代碼 | 描述 |
InvalidArgument | 400 | 傳入非法參數。 |
InventoryExceedLimit | 400 | 超出清單配置規則的數量限制。 |
AccessDenied | 403 |
|
InventoryAlreadyExist | 409 | 請求的清單規則已存在。 |