すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:インベントリ

最終更新日:Mar 21, 2026

バケットインベントリ機能は、バケット内のオブジェクトに関するメタデータ(オブジェクト数、サイズ、ストレージクラス、暗号化状態など)をスケジュールに従って定期的にエクスポートします。オブジェクト数が非常に多いバケットでは、GetBucket (ListObjects) API オペレーションの代わりにバケットインベントリをご利用ください。GetBucket (ListObjects) とは異なり、バケットインベントリは非同期でスケジュールに基づいて実行されます。

バケットインベントリでは、以下の項目を設定できます。

  • レポートに含めるオブジェクトのメタデータフィールド

  • すべてのオブジェクトバージョンを含めるか、現在のバージョンのみを含めるか

  • インベントリリストを保存する送信先バケット

  • エクスポート頻度(週次)

  • インベントリリストファイルの暗号化

このトピックでは、ossutil の inventory コマンドを使用して、バケットインベントリを作成、クエリ、一覧表示、および削除する方法について説明します。

前提条件

作業を開始する前に、以下の条件を満たしていることを確認してください。

  • インベントリを作成するための oss:PutBucketInventory 権限

  • インベントリをクエリするための oss:GetBucketInventory 権限

  • インベントリを削除するための oss:DeleteBucketInventory 権限

  • ソースバケットからオブジェクトを読み取り、送信先バケットに書き込む権限を持つ Resource Access Management (RAM) ロール(インベントリ作成時に必須)

RAM ユーザーに権限を付与する方法については、「RAM ユーザーにカスタムポリシーをアタッチする」をご参照ください。

注意事項

  • ossutil 1.6.16 以降のバージョンでは、オペレーティングシステムに関係なくバイナリ名として直接 ossutil を使用します。ossutil 1.6.16 より前のバージョンでは、オペレーティングシステム固有のバイナリ名を使用します。詳細については、「ossutil コマンドリファレンス」をご参照ください。

  • バケットインベントリ機能の詳細については、「バケットインベントリ」をご参照ください。

インベントリの作成

インベントリの作成には、次の 3 つのステップが必要です。RAM ロールの設定、XML 構成ファイルの作成、および put コマンドの実行です。

ステップ 1:RAM ロールの作成

ソースバケットからすべてのオブジェクトを読み取り、送信先バケットにオブジェクトを書き込む権限を持つ RAM ロールを作成します。詳細については、「信頼された Alibaba Cloud サービス用の RAM ロールを作成する」をご参照ください。

ステップ 2:XML 構成ファイルの作成

インベントリ構成を定義するローカル XML ファイルを作成します。以下の例では、examplebucket バケットに対して inventorytest という名前のインベントリを定義しています。OSS は、プレフィックスが dir/ のすべてのオブジェクトのメタデータを週次で destbucket にエクスポートします。エクスポートされるフィールドには、ストレージクラス、最終更新日時、フラグメントアップロードの状態、ETag、暗号化状態、およびサイズが含まれます。インベントリリストは SSE-OSS を使用して暗号化されます。

<?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>

主な XML フィールドは以下のとおりです。

フィールド説明
Idこのインベントリの一意な識別子です。同じ ID を持つインベントリがすでに存在する場合、リクエストは HTTP ステータスコード 409 を返します。
IsEnabledインベントリがアクティブかどうかを指定します。true に設定すると有効になります。
Filter > Prefix(省略可)このプレフィックスを含むオブジェクト名を持つオブジェクトのメタデータのみをエクスポートします。省略した場合は、すべてのオブジェクトが対象となります。
Format出力ファイル形式です。サポートされる値:CSV
AccountId送信先バケットを所有する Alibaba Cloud アカウントの ID です。
RoleArn送信先バケットへの書き込みを許可された RAM ロールの ARN です。
Bucketacs:oss:::<bucket-name> 形式の送信先バケットです。
Encryption(省略可)インベントリリストの暗号化方式です。サポートされる方式:SSE-OSS
Frequencyエクスポートスケジュールです。サポートされる値:Weekly
IncludedObjectVersions含めるオブジェクトバージョンです。サポートされる値:All(すべてのバージョン)、Current(現在のバージョンのみ)。
OptionalFields > Field含める追加のメタデータフィールドです。サポートされる値:LastModifiedDateStorageClassIsMultipartUploadedETagEncryptionStatusSize

ステップ 3:put コマンドの実行

構文:

ossutil inventory --method put oss://<bucket-name> <local-xml-file>

パラメーター:

パラメーター説明
bucket-nameインベントリを作成するバケットの名前です。
local-xml-fileローカル XML 構成ファイルのパス(例:localfile.xml)です。

例:

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

期待される出力:

0.299514(s) elapsed
1 つのバケットに対して複数のインベントリを作成できます。各インベントリはその Id によって一意に識別されます。指定された Id がすでに存在する場合、リクエストは HTTP ステータスコード 409 を返します。

特定のインベントリのクエリ

構文:

ossutil inventory --method get oss://<bucket-name> <inventory-id> [--local_xml_file <file>]

パラメーター:

パラメーター説明
bucket-nameバケットの名前です。
inventory-idクエリするインベントリの ID です。
--local_xml_file(省略可)インベントリ構成を保存するローカルファイルです。指定しない場合、出力は端末に表示されます。

例:

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

期待される出力:

0.212407(s) elapsed

バケットのすべてのインベントリの一覧表示

構文:

ossutil inventory --method list oss://<bucket-name> [--local_xml_file <file>] [--marker <value>]

パラメーター:

パラメーター説明
bucket-nameバケットの名前です。
--local_xml_file(省略可)インベントリリストを保存するローカルファイルです。指定しない場合、出力は端末に表示されます。
--marker(省略可)インベントリのプレフィックスベースのフィルター条件です。指定されたプレフィックスを含むオブジェクト名を持つオブジェクトに対してのみインベントリリストが生成されます。指定しない場合、バケット内のすべてのオブジェクトに対してインベントリリストが生成されます。

例:

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

期待される出力:

0.216897(s) elapsed

インベントリの削除

構文:

ossutil inventory --method delete oss://<bucket-name> <inventory-id>

パラメーター:

パラメーター説明
bucket-nameバケットの名前です。
inventory-id削除するインベントリの ID です。

例:

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

期待される出力:

0.212407(s) elapsed

共通オプション

別のリージョンにあるバケットや、別の Alibaba Cloud アカウントが所有するバケットにアクセスするには、任意の inventory コマンドの末尾に以下の関連オプションを追加します。

オプション説明
-e <endpoint>バケットが配置されているリージョンのエンドポイント(例:oss-cn-hangzhou.aliyuncs.com)です。
-i <AccessKey-ID>バケットを所有するアカウントの AccessKey ID です。
-k <AccessKey-secret>バケットを所有するアカウントの AccessKey Secret です。

— 別のアカウントが所有し、中国 (杭州) リージョンにあるバケットに対してインベントリを作成する場合:

ossutil inventory --method put oss://examplebucket local_xml_file -e oss-cn-hangzhou.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret

一般的なオプションの完全な一覧については、「一般的なオプション」をご参照ください。