inventory命令用于添加、查询、列举、删除存储空间(Bucket)的清单规则。

说明
  • 本文命令均以Linux系统为例,实际使用时,请将命令名称改为您实际可执行程序文件的名称。例如Windows 32位系统的帮助命令为ossutil32.exe help
  • Bucket清单功能介绍请参见存储空间清单

命令格式

  • 添加清单规则
    ./ossutil inventory --method put oss://bucket local_xml_file [options]
    ossutil从配置文件local_xml_file中读取清单规则配置,并在Bucket中添加对应规则。若添加的清单规则ID已经存在,则会返回409错误。
    配置文件是一个XML格式的文件,完整配置举例如下:
    <InventoryConfiguration>
         <Id>report1</Id>
         <IsEnabled>true</IsEnabled>
         <Filter>
            <Prefix>filterPrefix</Prefix>
         </Filter>
         <Destination>
            <OSSBucketDestination>
               <Format>CSV</Format>
               <AccountId>1000000000000000</AccountId>
               <RoleArn>acs:ram::1000000000000000:role/bucket-inventory-role</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>
    注意 配置清单规则前需生成一个RAM角色,该角色拥有读取源Bucket所有文件和向目标Bucket写入文件的权限。配置角色的步骤请参见创建可信实体为阿里云服务的RAM角色
  • 查询清单规则
    ./ossutil inventory --method get oss://bucket ruleid [local_xml_file] [options]
    查看指定规则ID的清单规则。如果输入参数local_xml_file,清单配置将输出到该文件,否则输出到屏幕上。
  • 列举清单规则
    ./ossutil inventory --method list oss://bucket [local_file] [--marker marker] [options]
    列举指定Bucket的所有清单规则(包括清单的配置)。如果输入参数local_file,清单配置将输出到该文件,否则输出到屏幕上。
  • 删除清单规则
    ./ossutil inventory --method delete oss://bucket ruleid

使用示例

  • 添加清单规则
    ./ossutil inventory --method put oss://bucket1 /file/inventory.xml
    例如创建规则,每天将bucket1下所有前缀为test的文件大小、最后更新时间、Etag、存储类型、加密状态信息,生成清单文件存储至bucket2的abc目录下,清单文件不加密。则inventory.xml文件内容为:
    <?xml version="1.0" encoding="UTF-8"?>
            <InventoryConfiguration>
                <Id>inventory_id</Id>
                <IsEnabled>true</IsEnabled>
                <Filter>
                    <Prefix>abc</Prefix>
                </Filter>
                <Destination>
                    <OSSBucketDestination>
                        <Format>CSV</Format>
                        <AccountId>174649585760****</AccountId>
                        <RoleArn>acs:ram::174649585760****:role/inventoryrole</RoleArn>
                        <Bucket>acs:oss:::bucket2</Bucket>
                        <Prefix>test</Prefix>
                    </OSSBucketDestination>
                </Destination>
                <Schedule>
                    <Frequency>Daily</Frequency>
                </Schedule>
                <IncludedObjectVersions>All</IncludedObjectVersions>
                <OptionalFields>
                    <Field>Size</Field>
                    <Field>LastModifiedDate</Field>
                    <Field>ETag</Field>
                    <Field>StorageClass</Field>
                    <Field>EncryptionStatus</Field>
                </OptionalFields>
            </InventoryConfiguration>
  • 查询规则名为inventory_id的清单规则
    ./ossutil inventory --method get oss://bucket1 inventory_id
    <?xml version="1.0" encoding="UTF-8"?>
            <InventoryConfiguration>
                <Id>test1</Id>
                <IsEnabled>true</IsEnabled>
                <Filter>
                    <Prefix>abc</Prefix>
                </Filter>
                <Destination>
                    <OSSBucketDestination>
                        <Format>CSV</Format>
                        <AccountId>174649585760****</AccountId>
                        <RoleArn>acs:ram::174649585760****:role/inventoryrole</RoleArn>
                        <Bucket>acs:oss:::bucket2</Bucket>
                        <Prefix>test</Prefix>
                    </OSSBucketDestination>
                </Destination>
                <Schedule>
                    <Frequency>Daily</Frequency>
                </Schedule>
                <IncludedObjectVersions>All</IncludedObjectVersions>
                <OptionalFields>
                    <Field>Size</Field>
                    <Field>LastModifiedDate</Field>
                    <Field>ETag</Field>
                    <Field>StorageClass</Field>
                    <Field>EncryptionStatus</Field>
                </OptionalFields>
            </InventoryConfiguration>
  • 列举清单规则,并转存到本地
    ./ossutil inventory --method get oss://bucket1 /file/inventory2.xml
  • 删除规则名为inventory_id的清单规则
    ./ossutil inventory --method delete oss://bucket1 inventory_id

常用选项

您可以在使用inventory命令时附加如下选项:
选项名称 描述
--method 表示命令的操作类型。取值:
  • put:添加配置。
  • get:获取配置。
  • list:列举配置。
  • delete:删除配置。
--loglevel 设置日志级别,默认为空,表示不输出日志文件。可选值为:
  • info:输出提示信息日志。
  • debug:输出详细信息日志(包括http请求和响应信息)。
--proxy-host 网络代理服务器的url地址,支持http、https、socks5。例如http://120.79.**.**:3128、 socks5://120.79.**.**:1080。
--proxy-user 网络代理服务器的用户名,默认为空。
--proxy-pwd 网络代理服务器的密码,默认为空。
--marker 列举Buckets或清单时的marker;列举Objects或Multipart Uploads时的key marker。
说明 更多通用选项请参见查看选项