バケットインベントリ機能を使用して、数、サイズ、ストレージクラス、暗号化状態など、バケット内の特定のオブジェクトに関する情報をエクスポートできます。 多数のオブジェクトを一覧表示するには、GetBucket (ListObjects) 操作の代わりにバケットインベントリ機能を使用することを推奨します。 このトピックでは、inventoryコマンドを実行して、バケットのインベントリを作成、クエリ、一覧表示、または削除する方法について説明します。
使用上の注意
バケットインベントリを作成するには、
oss:PutBucketInventory
権限が必要です。 バケットインベントリをクエリするには、oss:GetBucketInventory
権限が必要です。 バケットインベントリを削除するには、oss:DeleteBucketInventory
権限が必要です。 詳細については、「RAMユーザーへのカスタムポリシーのアタッチ」をご参照ください。このトピックでは、64ビットLinuxシステムで動作するサンプルコマンドラインを提供します。 他のシステムのために、取り替えて下さい./ossutil64対応するバイナリ名を持つコマンドで 詳細は、「ossutilコマンドリファレンス」をご参照ください。
バケットインベントリ機能の詳細については、「バケットインベントリ」をご参照ください。
在庫の作成
バケットのインベントリを作成するには、次の手順を実行します。
Resource Access Management (RAM) ロールを作成し、ソースバケット内のすべてのオブジェクトを読み取り、生成されたインベントリリストが格納されているターゲットバケットにオブジェクトを書き込むことをロールに許可します。 詳細については、「信頼できるAlibaba CloudサービスのRAMロールの作成」をご参照ください。
ローカルファイルを作成し、ファイル内のXML形式でインベントリを設定します。
ossutilを使用して、ローカルファイルからインベントリを読み取り、指定されたバケットにインベントリを関連付けます。
コマンド構文
./ossutil64 inventory -- メソッド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> <フィルター> <Prefix>dir/</Prefix> </フィルター> <宛先> <OSSBucketDestination> <フォーマット> CSV</フォーマット> <AccountId>1746495857602745</AccountId> <RoleArn>acs:ram::174649585760 ****:role/AliyunOSSRole</RoleArn> <Bucket>acs:oss :: destbucket</Bucket> <暗号化> <SSE-OSS></SSE-OSS> </暗号化> </OSSBucketDestination> </宛先> <スケジュール> <Frequency> ウィークリー </Frequency> </スケジュール> <IncludedObjectVersions> すべての </IncludedObjectVersions> <OptionalFields> <フィールド> LastModifiedDate</フィールド> <Field>StorageClass</Field> <Field>IsMultipartUploaded</Field> <フィールド> ETag</フィールド> <Field>EncryptionStatus</Field> <フィールド> サイズ </フィールド> </OptionalFields> </InventoryConfiguration>
重要バケットに複数のインベントリを作成できます。 在庫は、それらのIDによって一意に識別される。 作成するインベントリのIDが既存のインベントリのIDと同じ場合、HTTPステータスコード409が返されます。
examplebucketという名前のバケットのインベントリを作成します。
./ossutil64 inventory -- メソッドput oss:// examplebucket localfile.xml
次のサンプル出力は、インベントリが作成されたことを示します。
0.299514経過
バケット用に構成された指定されたインベントリの照会
コマンド構文
./ossutil64 inventory -- method get oss:// bucketname inventory_id [-- local_xml_file]
次の表に、構文のパラメーターを示します。
パラメーター
説明
bucketname
インベントリを照会するバケットの名前。
inventory_id
クエリするインベントリの名前。
local_xml_ファイル
インベントリを保存するローカルファイルの名前。 例:
localfile.txt
このパラメーターを指定しない場合、インベントリはローカルファイルに保存されずに画面に表示されます。例
./ossutil64 inventory -- メソッドget oss:// examplebucket inventorytest localfile.txt
次のサンプル出力は、examplebucketバケットに設定されたinventorytestインベントリがクエリされ、localfile.txtファイルに書き込まれることを示しています。
0.212407経過
バケットに設定されたすべてのインベントリの照会
コマンド構文
./ossutil64 inventory -- method list oss:// bucketname [-- local_xml_file ] [-- marker <value>]
次の表に、構文のパラメーターを示します。
パラメーター
説明
bucketname
インベントリを照会するバケットの名前。
local_xml_ファイル
インベントリを格納するローカルXMLファイルの名前。 このパラメーターを指定しない場合、インベントリはローカルファイルに保存されずに画面に表示されます。
マーカー
インベントリのプレフィックスベースのフィルタリング条件。 インベントリリストは、指定されたプレフィックスを名前に含むオブジェクトに対してのみ生成されます。 このパラメーターを指定しない場合、バケット内のすべてのオブジェクトに対してインベントリリストが生成されます。
例
./ossutil64 inventory -- メソッドリストoss:// examplebucket localfile.txt dest
次のサンプル出力は、examplebucketバケット内のdestプレフィックスを名前に含むオブジェクトのすべてのインベントリがクエリされ、localfile.txtファイルに書き込まれることを示しています。
0.216897経過
バケットの指定されたインベントリを削除する
コマンド構文
./ossutil64 inventory -- メソッドdelete oss:// bucketname inventory_id
次の表に、構文のパラメーターを示します。
パラメーター
説明
bucketname
インベントリを削除するバケットの名前。
inventory_id
削除するインベントリの名前。
例
./ossutil64 inventory -- メソッドdelete oss:// examplebucket inventorytest
次のサンプル出力は、examplebucketバケット用に構成されている「inventorytest」インベントリがシステムによって削除されたことを示しています。
0.212407経過
一般的なオプション
ossutilを使用して別のリージョンにあるバケットに切り替える場合は、コマンドに -eオプションを追加して、指定したバケットがあるリージョンのエンドポイントを指定します。 ossutilを使用して別のAlibaba Cloudアカウントに属するバケットに切り替える場合、コマンドに -iオプションを追加して、指定されたアカウントのAccessKey IDを指定し、コマンドに -kオプションを追加して、指定されたアカウントのAccessKey secretを指定します。
たとえば、次のコマンドを実行して、中国 (杭州) リージョンにあり、別のAlibabaクラウドアカウントが所有するexamplebucketという名前のバケットのインベントリを設定できます。
./ossutil64 inventory -- メソッドput oss:// examplebucket local_xml_file -e oss-cn-hangzhou.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA **** -k 67DLVBkH7EamOjy2W5RVAHUY9H ****
共通オプションの詳細については、「共通オプション」をご参照ください。