調用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>TransistionTime</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>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
錯誤碼
錯誤碼 | HTTP狀態碼 | 描述 |
InvalidArgument | 400 | 傳入非法參數。 |
InventoryExceedLimit | 400 | 超出清單配置規則的數量限制。 |
AccessDenied | 403 |
|
InventoryAlreadyExist | 409 | 請求的清單規則已存在。 |