put-bucket-inventory接口用于为指定存储空间(Bucket)配置清单(Inventory)规则。
注意事项
只有Bucket的所有者或具备
oss:PutBucketInventory
权限的用户才能发起配置清单规则的请求。配置清单规则前需生成一个RAM角色,该角色应具备源Bucket所有文件和向目标Bucket写入文件的权限。首次使用清单功能时,建议您通过OSS控制台进行配置。清单规则配置完成后,您可以获取拥有所有权限的RAM角色。有关配置清单规则中RAM角色的权限说明请参见存储空间清单。
单个Bucket最多只能配置1000条清单规则。
配置清单的源Bucket与存放清单文件的目标Bucket必须位于同一个Region。
命令格式
ossutil api put-bucket-inventory --bucket value --inventory-id value --inventory-configuration value [flags]
参数 | 类型 | 说明 |
参数 | 类型 | 说明 |
--bucket | string | Bucket的名称。 |
--inventory-configuration | string | 存储清单配置信息。 |
--inventory-id | string | 清单任务Id。 |
put-bucket-inventory命令对应API接口PutBucketInventory。关于API中的具体参数含义,请参见PutBucketInventory。
--inventory-configuration
--inventory-configuration 配置选项既支持XML语法也支持JSON语法,当选项值包含file://前缀时,表示从文件中读取配置。
XML语法:
<InventoryConfiguration> <Id>string</Id> <IsEnabled>boolean</IsEnabled> <Destination> <OSSBucketDestination> <Bucket>string</Bucket> <Prefix>string</Prefix> <Encryption> <SSE-OSS> </SSE-OSS> <SSE-KMS> <KeyId>string</KeyId> </SSE-KMS> </Encryption> <Format>string</Format> <AccountId>string</AccountId> <RoleArn>string</RoleArn> </OSSBucketDestination> </Destination> <Schedule> <Frequency>string</Frequency> </Schedule> <Filter> <Prefix>string</Prefix> </Filter> <IncludedObjectVersions>string</IncludedObjectVersions> <OptionalFields> <Field>string</Field> ... </OptionalFields> </InventoryConfiguration>
JSON语法:
[ { "IsEnabled": boolean, "Destination": { "OSSBucketDestination": { "Format": "string", "AccountId": "string", "RoleArn": "string", "Bucket": "string", "Prefix": "string", "Encryption": { "SSE-OSS": { }, "SSE-KMS": { "KeyId": "string" } } } }, "Schedule": { "Frequency": "string" }, "Filter": { "Prefix": "string" }, "IncludedObjectVersions": "string", "OptionalFields": { "Field": [ "string", ... ] }, "Id": "string" }, ... ]
关于支持的全局命令行选项,请参见支持的全局命令行选项。
使用示例
以下示例展示了如何为名为examplebucket
的存储空间设置清单名称为report1
的清单规则。
使用XML配置文件,inventory-configuration.xml内容如下:
<?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>
命令示例如下:
ossutil api put-bucket-inventory --bucket examplebucket --inventory-id report1 --inventory-configuration file://inventory-configuration.xml
使用JSON配置文件,inventory-configuration.json 内容如下:
{ "Id": "report1", "IsEnabled": "true", "Filter": { "Prefix": "Pics/", "LastModifyBeginTimeStamp": "1637883649", "LastModifyEndTimeStamp": "1638347592", "LowerSizeBound": "1024", "UpperSizeBound": "1048576", "StorageClass": "Standard,IA" }, "Destination": { "OSSBucketDestination": { "Format": "CSV", "AccountId": "100000000000000", "RoleArn": "acs:ram::100000000000000:role/AliyunOSSRole", "Bucket": "acs:oss:::destbucket", "Prefix": "prefix1/", "Encryption": { "SSE-KMS": { "KeyId": "keyId" } } } }, "Schedule": { "Frequency": "Daily" }, "IncludedObjectVersions": "All", "OptionalFields": { "Field": [ "Size", "LastModifiedDate", "ETag", "StorageClass", "IsMultipartUploaded", "EncryptionStatus" ] } }
命令示例如下:
ossutil api put-bucket-inventory --bucket examplebucket --inventory-id report1 --inventory-configuration file://inventory-configuration.json
使用JSON配置参数,命令示例如下:
ossutil api put-bucket-inventory --bucket examplebucket --inventory-id report1 --inventory-configuration "{\"Id\":\"report1\",\"IsEnabled\":\"true\",\"Filter\":{\"Prefix\":\"Pics/\",\"LastModifyBeginTimeStamp\":\"1637883649\",\"LastModifyEndTimeStamp\":\"1638347592\",\"LowerSizeBound\":\"1024\",\"UpperSizeBound\":\"1048576\",\"StorageClass\":\"Standard,IA\"},\"Destination\":{\"OSSBucketDestination\":{\"Format\":\"CSV\",\"AccountId\":\"100000000000000\",\"RoleArn\":\"acs:ram::100000000000000:role/AliyunOSSRole\",\"Bucket\":\"acs:oss:::destbucket\",\"Prefix\":\"prefix1/\",\"Encryption\":{\"SSE-KMS\":{\"KeyId\":\"keyId\"}}}},\"Schedule\":{\"Frequency\":\"Daily\"},\"IncludedObjectVersions\":\"All\",\"OptionalFields\":{\"Field\":[\"Size\",\"LastModifiedDate\",\"ETag\",\"StorageClass\",\"IsMultipartUploaded\",\"EncryptionStatus\"]}}"
- 本页导读 (1)
- 注意事项
- 命令格式
- --inventory-configuration
- 使用示例