全部產品
Search
文件中心

Object Storage Service:inventory(清單)

更新時間:Jul 31, 2024

您可以使用清單功能擷取儲存空間(Bucket)中指定檔案(Object)的數量、大小、儲存類型、加密狀態等資訊。相對於GetBucket (ListObjects)介面,在海量Object的列舉情境中,建議您優先使用清單功能。本文介紹如何通過inventory命令添加、查詢、列舉或刪除Bucket清單規則。

注意事項

  • 要添加清單規則,您必須具有oss:PutBucketInventory許可權;要查詢清單規則,您必須具有oss:GetBucketInventory許可權;要刪除清單規則,您必須具有oss:DeleteBucketInventory許可權。具體操作,請參見為RAM使用者授權自訂的權限原則

  • 從ossutil 1.6.16版本開始,命令列中Binary名稱支援直接使用ossutil,您無需根據系統重新整理Binary名稱。如果您的ossutil版本低於1.6.16,則需要根據系統重新整理Binary名稱。更多資訊,請參見命令列工具ossutil命令參考

  • 關於Bucket清單功能的更多資訊,參見儲存空間清單

添加清單規則

添加清單規則步驟如下:

  1. 產生RAM角色,該角色需擁有讀取源Bucket所有檔案和向目標Bucket寫入檔案的許可權。配置角色的步驟請參見建立可信實體為阿里雲服務的RAM角色

  2. 建立本地檔案,並在檔案中配置XML格式的清單規則。

  3. ossutil先從本地檔案中讀取清單配置,然後將讀取到清單配置添加到指定的Bucket。

  • 命令格式

    ossutil inventory --method put oss://bucketname local_xml_file

    參數說明如下:

    參數

    說明

    bucketname

    添加清單規則的儲存空間名稱。

    local_xml_file

    配置清單規則的本地檔案名稱,例如localfile.xml

  • 使用樣本

    1. 建立本地檔案localfile.xml,並根據使用情境寫入不同的清單規則。

      例如,將清單規則名稱設定為inventorytest,以周為單位將清單報告匯出至目標儲存空間destbucket,清單內容中包含destbucket中與首碼dir/匹配的所有檔案的儲存類型、其最後更新時間以及分區上傳狀態等,並使用AES256密碼編譯演算法加密資訊清單檔。

      <?xml version="1.0" encoding="UTF-8"?>
        <InventoryConfiguration>
            <Id>inventorytest</Id>
            <IsEnabled>true</IsEnabled>
            <Filter>
              <Prefix>dir/</Prefix>
            </Filter>
            <Destination>
                <OSSBucketDestination>
                    <Format>CSV</Format>
                    <AccountId>1746495857602745</AccountId>
                    <RoleArn>acs:ram::174649585760****:role/AliyunOSSRole</RoleArn>
                    <Bucket>acs:oss:::destbucket</Bucket>
                    <Encryption>
                        <SSE-OSS></SSE-OSS>
                    </Encryption>
                </OSSBucketDestination>
            </Destination>
            <Schedule>
                <Frequency>Weekly</Frequency>
            </Schedule>
            <IncludedObjectVersions>All</IncludedObjectVersions>
            <OptionalFields>
                <Field>LastModifiedDate</Field>
                <Field>StorageClass</Field>
                <Field>IsMultipartUploaded</Field>
                <Field>ETag</Field>
                <Field>EncryptionStatus</Field>
                <Field>Size</Field>
            </OptionalFields>
        </InventoryConfiguration>
      重要

      您可以為Bucket添加多條清單規則,規則名稱(ID)是清單配置的唯一標識。若添加的規則ID已存在,則返回409錯誤。

    2. 為examplebucket添加清單規則。

      ossutil inventory --method put oss://examplebucket localfile.xml

      以下輸出結果表明已成功添加清單規則。

      0.299514(s) elapsed

查詢指定清單規則

  • 命令格式

    ossutil inventory --method get oss://bucketname inventory_id [--local_xml_file ]

    參數說明如下:

    參數

    說明

    bucketname

    查詢清單配置的目標Bucket名稱。

    inventory_id

    清單規則名稱。

    local_xml_file

    用於存放清單配置的本地檔案名稱,例如localfile.txt。如果未指定此參數,則清單配置將直接輸出到螢幕。

  • 使用樣本

    ossutil inventory --method get oss://examplebucket inventorytest localfile.txt

    以下輸出結果表明已成功查詢examplebucket中配置規則ID為inventorytest的清單內容,並將清單結果寫入本地localfile.txt檔案。

    0.212407(s) elapsed

查詢所有清單規則

  • 命令格式

    ossutil inventory --method list oss://bucketname [--local_xml_file ] [--marker <value>]

    參數說明如下:

    參數

    說明

    bucketname

    擷取清單配置的目標Bucket名稱。

    local_xml_file

    用於存放清單配置的本地XML檔案名稱。如果未指定此參數,則清單配置將直接輸出到螢幕。

    marker

    清單過濾條件,只對與指定首碼匹配的Object產生資訊清單檔。如果此項置空,表示對目標Bucket中的所有Object產生資訊清單檔。

  • 使用樣本

    ossutil inventory --method list oss://examplebucket localfile.txt dest

    以下輸出結果表明已成功查詢examplebucket下與dest首碼匹配的檔案包含的所有清單規則,並將清單結果寫入本地localfile.txt檔案。

    0.216897(s) elapsed

刪除指定清單規則

  • 命令格式

    ossutil inventory --method delete oss://bucketname inventory_id

    參數說明如下:

    參數

    說明

    bucketname

    刪除清單配置的目標Bucket名稱。

    inventory_id

    清單規則名稱。

  • 使用樣本

    ossutil inventory --method delete oss://examplebucket inventorytest

    以下輸出結果表明已成功刪除examplebucket配置規則ID為inventorytest的清單內容。

    0.212407(s) elapsed

通用選項

當您需要通過命令列工具ossutil切換至另一個地區的Bucket時,可以通過-e選項指定該Bucket所屬的Endpoint。當您需要通過命令列工具ossutil切換至另一個阿里雲帳號下的Bucket時,可以通過-i選項指定該帳號的AccessKey ID,並通過-k選項指定該帳號的AccessKey Secret。

例如您需要為另一個阿里雲帳號下,華東1(杭州)名為examplebucket的儲存空間配置清單規則,命令如下:

ossutil inventory --method put oss://examplebucket local_xml_file -e oss-cn-hangzhou.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA****  -k 67DLVBkH7EamOjy2W5RVAHUY9H****

關於此命令的其他通用選項的更多資訊,請參見通用選項