バケットインベントリ機能を使用して、数、サイズ、ストレージクラス、暗号化状態など、バケット内の特定のオブジェクトに関する情報をエクスポートできます。 多数のオブジェクトを一覧表示するには、GetBucket (ListObjects) 操作の代わりにバケットインベントリ機能を使用することを推奨します。 このトピックでは、inventoryコマンドを実行して、バケットのインベントリを作成、クエリ、一覧表示、または削除する方法について説明します。
使用上の注意
バケットインベントリを作成するには、
oss:PutBucketInventory
権限が必要です。 バケットインベントリをクエリするには、oss:GetBucketInventory
権限が必要です。 バケットインベントリを削除するには、oss:DeleteBucketInventory
権限が必要です。 詳細については、「RAMユーザーへのカスタムポリシーのアタッチ」をご参照ください。ossutil 1.6.16以降の場合、コマンドラインでossutilをバイナリ名として直接使用できます。 オペレーティングシステムに基づいてバイナリ名を更新する必要はありません。 1.6.16より前のossutilの場合は、オペレーティングシステムに対応するバイナリ名を指定する必要があります。 詳細は、「ossutilコマンドリファレンス」をご参照ください。
バケットインベントリ機能の詳細については、「バケットインベントリ」をご参照ください。
在庫の作成
バケットのインベントリを作成するには、次の手順を実行します。
Resource Access Management (RAM) ロールを作成し、ソースバケット内のすべてのオブジェクトを読み取り、生成されたインベントリリストが格納されている宛先バケットにオブジェクトを書き込むことをロールに許可します。 詳細については、「信頼できるAlibaba CloudサービスのRAMロールの作成」をご参照ください。
ローカルファイルを作成し、ファイル内のXML形式でインベントリを設定します。
ossutilを使用して、ローカルファイルからインベントリを読み取り、指定されたバケットにインベントリを関連付けます。
コマンド構文
ossutil inventory --method put oss://bucketname local_xml_file
次の表に、上記のパラメーターを示します。
パラメーター
説明
bucketname
インベントリを作成するバケットの名前。
local_xml_ファイル
インベントリを構成するローカルXMLファイルの名前。 例:
localfile.xml
例
localfile.xmlという名前のローカルファイルを作成し、要件に基づいてインベントリを設定します。
inventorytestという名前のインベントリの例を次に示します。 このインベントリに基づいて、Object Storage Service (OSS) は、destbucketバケット内のdir/ prefixを名前に含むすべてのオブジェクトに関する情報を週単位でエクスポートします。 エクスポートされた情報には、オブジェクトのストレージクラス、最終変更日、およびマルチパートアップロードステータスが含まれます。 エクスポートされたインベントリリストは、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>
重要バケットに複数のインベントリを作成できます。 在庫は、それらのIDによって一意に識別される。 作成するインベントリのIDが既存のインベントリのIDと同じ場合、HTTPステータスコード409が返されます。
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
インベントリを照会するバケットの名前。
inventory_id
クエリするインベントリの名前。
local_xml_ファイル
インベントリを保存するローカルファイルの名前。 例:
localfile.txt
このパラメーターを指定しない場合、インベントリはローカルファイルに保存されずに表示されます。例
ossutil inventory --method get oss://examplebucket inventorytest localfile.txt
次のサンプル出力は、examplebucketバケットに設定されたinventorytestインベントリがクエリされ、localfile.txtファイルに書き込まれることを示しています。
0.212407(s) elapsed
バケットに設定されたすべてのインベントリの照会
コマンド構文
ossutil inventory --method list oss://bucketname [--local_xml_file ] [--marker <value>]
次の表に、上記のパラメーターを示します。
パラメーター
説明
bucketname
インベントリを照会するバケットの名前。
local_xml_ファイル
インベントリを格納するローカルXMLファイルの名前。 このパラメーターを指定しない場合、インベントリはローカルファイルに保存されずに表示されます。
マーカー
インベントリのプレフィックスベースのフィルタリング条件。 インベントリリストは、指定されたプレフィックスを名前に含むオブジェクトに対してのみ生成されます。 このパラメーターを指定しない場合、バケット内のすべてのオブジェクトに対してインベントリリストが生成されます。
例
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
インベントリを削除するバケットの名前。
inventory_id
削除するインベントリの名前。
例
ossutil inventory --method delete oss://examplebucket inventorytest
次のサンプル出力は、examplebucketバケットに設定されているinventorytestインベントリがシステムによって削除されたことを示しています。
0.212407(s) elapsed
一般的なオプション
ossutilを使用して別のリージョンにあるバケットに切り替える場合は、コマンドに -eオプションを追加して、指定したバケットがあるリージョンのエンドポイントを指定します。 ossutilを使用して別のAlibaba Cloudアカウントに属するバケットに切り替える場合、コマンドに -iオプションを追加して、指定されたアカウントのAccessKey IDを指定し、コマンドに -kオプションを追加して、指定されたアカウントのAccessKey secretを指定します。
たとえば、次のコマンドを実行して、中国 (杭州) リージョンにあり、別のAlibaba Cloudアカウントが所有するexamplebucketという名前のバケットのインベントリを設定できます。
ossutil inventory --method put oss://examplebucket local_xml_file -e oss-cn-hangzhou.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA**** -k 67DLVBkH7EamOjy2W5RVAHUY9H****
共通オプションの詳細については、「共通オプション」をご参照ください。