PutBucketInventory API を呼び出して、バケットのインベントリルールを設定できます。
注意事項
インベントリは、バケット内のオブジェクトに関する情報を提供します(例:オブジェクト数、サイズ、ストレージクラス、暗号化ステータスなど)。インベントリルールを設定する際は、以下の点にご注意ください。
バケットのインベントリを設定する前に、RAM ロールを作成する必要があります。この RAM ロールには、ソースバケットからすべてのオブジェクトを読み取る権限および宛先バケットへオブジェクトを書き込む権限が必要です。初めてバケットインベントリ機能を利用する場合は、OSS コンソールでインベントリを設定することを推奨します。設定後に、OSS リソースに対するすべての操作を実行できる権限を持つ RAM ロールを取得できます。インベントリルール設定時に必要な RAM ロールの権限については、「バケットインベントリ」をご参照ください。
1 つのバケットでは、最大 1,000 個のインベントリルールを設定できます。
インベントリのソースバケットと、エクスポートされたインベントリファイルの宛先バケットは、同一リージョン内に存在する必要があります。
増分インベントリ機能を利用するには、テクニカルサポートへお問い合わせのうえ、申請してください。この機能は現在、メキシコ (メキシコシティ) リージョンでのみご利用いただけます。
権限
デフォルトでは、Alibaba Cloud アカウントはすべての権限を持ちます。一方、Alibaba Cloud アカウント配下の RAM ユーザーおよび RAM ロールは、デフォルトで権限を持ちません。Alibaba Cloud アカウントまたはアカウント管理者が、RAM ポリシー または バケットポリシー を使用して操作権限を付与する必要があります。
API | Action | 説明 |
PutBucketInventory | oss:PutBucketInventory | バケットのインベントリを設定します。 |
リクエスト構文
リクエストヘッダー内の inventoryId パラメーターは必須です。その値は、リクエストパラメーター Id の値と一致している必要があります。
LastModifyBeginTimeStamp、LastModifyEndTimeStamp、LowerSizeBound、UpperSizeBound、および StorageClass オプションは、中国 (青島)、中国 (フフホト)、ドイツ (フランクフルト) の各リージョンでのみサポートされています。
PUT /?inventory&inventoryId=report1 HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: Mon, 31 Oct 2016 12:00:00 GMT
Authorization: authorization string
Content-Length: length
<?xml version="1.0" encoding="UTF-8"?>
<InventoryConfiguration>
<Id>report1</Id>
<IsEnabled>true</IsEnabled>
<Destination>
<OSSBucketDestination>
<Format>CSV</Format>
<AccountId>1000000000000000</AccountId>
<RoleArn>acs:ram::1000000000000000:role/AliyunOSSRole</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>TransistionTime</Field>
<Field>ETag</Field>
<Field>StorageClass</Field>
<Field>IsMultipartUploaded</Field>
<Field>EncryptionStatus</Field>
</OptionalFields>
<IncrementalInventory>
<IsEnabled>true</IsEnabled>
<Schedule>
<Frequency>600</Frequency>
</Schedule>
<OptionalFields>
<Field>SequenceNumber</Field>
<Field>RecordType</Field>
<Field>RecordTimestamp</Field>
<Field>Requester</Field>
<Field>RequestId</Field>
<Field>SourceIp</Field>
<Field>Size</Field>
<Field>StorageClass</Field>
<Field>LastModifiedDate</Field>
<Field>ETag</Field>
<Field>IsMultipartUploaded</Field>
<Field>ObjectType</Field>
<Field>ObjectAcl</Field>
<Field>Crc64</Field>
<Field>EncryptionStatus</Field>
</OptionalFields>
</IncrementalInventory>
</InventoryConfiguration>リクエスト要素
名前 | 型 | 必須 | 例 | 説明 |
Id | 文字列 | はい | report1 | カスタムインベントリ名です。以下の要件を満たす必要があります。
|
IsEnabled | ブール値 | はい | true | インベントリ機能が有効かどうかを示します。 有効値:
|
Filter | コンテナー | いいえ | N/A | インベントリでフィルタリングするオブジェクトのプレフィックスです。プレフィックスを指定すると、該当するプレフィックスに一致するオブジェクトがフィルタリングされます。 |
Prefix | 文字列 | いいえ | Pics/ | フィルタリングルールのプレフィックスです。 親ノード:Filter |
LastModifyBeginTimeStamp | 文字列 | いいえ | 1637883649 | フィルタリング対象ファイルの最終更新時刻の開始 UNIX タイムスタンプ(秒単位)です。 有効範囲:[1262275200, 253402271999] |
LastModifyEndTimeStamp | 文字列 | いいえ | 1638347592 | フィルタリング対象ファイルの最終更新時刻の終了 UNIX タイムスタンプ(秒単位)です。 有効範囲:[1262275200, 253402271999] |
LowerSizeBound | 文字列 | いいえ | 1024 | フィルタリング対象ファイルの最小サイズ(バイト単位)です。 有効範囲:0 B ~ 48.8 TB。 |
UpperSizeBound | 文字列 | いいえ | 1048576 | フィルタリング対象ファイルの最大サイズ(バイト単位)です。 有効範囲:0 B より大きい値 ~ 48.8 TB。 |
StorageClass | 文字列 | いいえ | Standard,IA | フィルタリング対象ファイルのストレージクラスです。複数のストレージクラスを指定できます。 有効値:
|
Destination | コンテナー | はい | N/A | チェックリスト結果を格納します。 |
OSSBucketDestination | コンテナー | はい | N/A | エクスポートされたインベントリ結果を格納するバケットに関する情報です。 親ノード:Destination |
Format | 文字列 | はい | CSV | インベントリファイルのファイル形式です。エクスポートされたインベントリファイルは、GZIP で圧縮された CSV ファイルです。 有効値:CSV 親ノード:OSSBucketDestination |
AccountId | 文字列 | はい | 100000000000000 | バケット所有者によって付与された AccountId です。 親ノード:OSSBucketDestination |
RoleArn | 文字列 | はい | acs:ram::100000000000000:role/AliyunOSSRole | ソースバケットからすべてのファイルを読み取り、宛先バケットへファイルを書き込む権限を持つロールの名前です。形式: 親ノード:OSSBucketDestination |
Bucket | 文字列 | はい | acs:oss:::bucket_0001 | エクスポートされたインベントリファイルを格納するバケットです。 親ノード:OSSBucketDestination |
Prefix | 文字列 | いいえ | prefix1/ | インベントリファイルの保存パスのプレフィックスです。 親ノード:OSSBucketDestination |
Encryption | コンテナー | いいえ | N/A | インベントリファイルの暗号化方式です。 有効値:
親ノード:OSSBucketDestination 詳細については、「サーバー側暗号化」をご参照ください。 |
SSE-OSS | コンテナー | いいえ | N/A | SSE-OSS 暗号化方式のコンテナーです。 親ノード:Encryption |
SSE-KMS | コンテナー | いいえ | N/A | SSE-KMS 暗号化キーのコンテナーです。 親ノード:Encryption |
KeyId | 文字列 | いいえ | keyId | KMS キー ID です。 親ノード:SSE-KMS |
Schedule | コンテナー | はい | N/A | インベントリエクスポート頻度情報を格納するコンテナーです。 |
Frequency | 文字列 | はい | Daily | インベントリファイルのエクスポート頻度です。 有効値:
親ノード:Schedule |
IncludedObjectVersions | 文字列 | はい | All | インベントリにオブジェクトのバージョン情報が含まれるかどうかを指定します。 有効値:
|
OptionalFields | コンテナー | いいえ | N/A | インベントリ結果に含める項目を設定します。 |
Field | 文字列 | いいえ | Size | インベントリ結果に含める設定項目です。
|
IncrementalInventory | コンテナー | いいえ | N/A | 増分インベントリの設定コンテナーです。 |
IsEnabled | ブール値 | はい | true | 増分インベントリを有効にするかどうかを指定します。有効値:
InventoryConfiguration/IsEnabled が false であっても、true に設定すると、増分インベントリが有効になります。 親ノード:IncrementalInventory |
Schedule | コンテナー | はい | N/A | 増分インベントリのエクスポート頻度情報を格納するコンテナーです。 親ノード:IncrementalInventory |
Frequency | 正の整数 | はい | 600 | 増分インベントリのエクスポート頻度(秒単位)です。 システムでは現在、固定期間として 600 秒が使用されています。各期間ごとに、自動的にディレクトリプレフィックスが作成され、その期間に対応するマニフェストファイルおよび複数の CSV ファイルが生成されます。カスタムの頻度設定はサポートされていません。 親ノード:Schedule |
OptionalFields | コンテナー | いいえ | N/A | 増分インベントリファイルのプロパティを設定するコンテナーです。 親ノード:IncrementalInventory |
Field | 文字列 | いいえ | Size | 増分インベントリに含める設定項目です。 親ノード:OptionalFields
|
レスポンス要素
この操作は、Content-Length や Date などの共通レスポンスヘッダーのみを返します。詳細については、「共通レスポンスヘッダー」をご参照ください。
サンプル
インベントリルールの設定
リクエストのサンプル
PUT /?inventory&inventoryId=report1 HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Mon, 31 Oct 2016 12:00:00 GMT Authorization: authorization string Content-Length: length <?xml version="1.0" encoding="UTF-8"?> <InventoryConfiguration> <Id>report1</Id> <IsEnabled>true</IsEnabled> <Filter> <Prefix>Pics/</Prefix> <LastModifyBeginTimeStamp>1637883649</LastModifyBeginTimeStamp> <LastModifyEndTimeStamp>1638347592</LastModifyEndTimeStamp> <LowerSizeBound>1024</LowerSizeBound> <UpperSizeBound>1048576</UpperSizeBound> <StorageClass>Standard,IA</StorageClass> </Filter> <Destination> <OSSBucketDestination> <Format>CSV</Format> <AccountId>100000000000000</AccountId> <RoleArn>acs:ram::100000000000000:role/AliyunOSSRole</RoleArn> <Bucket>acs:oss:::destbucket</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>TransistionTime</Field> <Field>ETag</Field> <Field>StorageClass</Field> <Field>IsMultipartUploaded</Field> <Field>EncryptionStatus</Field> </OptionalFields> </InventoryConfiguration>レスポンスのサンプル
HTTP/1.1 200 OK x-oss-request-id: 56594298207FB3044385**** Date: Mon, 31 Oct 2016 12:00:00 GMT Content-Length: 0 Server: AliyunOSS
増分インベントリルールの設定
リクエストのサンプル
PUT /?inventory&inventoryId=report1 HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Mon, 31 Oct 2016 12:00:00 GMT Authorization: authorization string Content-Length: length <?xml version="1.0" encoding="UTF-8"?> <InventoryConfiguration> <Id>Report-1</Id> <IsEnabled>true</IsEnabled> <Filter> <Prefix>test</Prefix> </Filter> <Destination> <OSSBucketDestination> <Format>CSV</Format> <AccountId>12xxxxxx29</AccountId> <RoleArn>acs:ram::12xxxxxx29:role/bucket-inventory-role</RoleArn> <Bucket>acs:oss:::test-inc-bi-bj</Bucket> <Prefix>Report-1</Prefix> </OSSBucketDestination> </Destination> <Schedule> <Frequency>Weekly</Frequency> </Schedule> <IncludedObjectVersions>All</IncludedObjectVersions> <OptionalFields> <Field>Size</Field> <Field>LastModifiedDate</Field> <Field>ETag</Field> <Field>StorageClass</Field> </OptionalFields> <IncrementalInventory> <IsEnabled>true</IsEnabled> <Schedule> <Frequency>600</Frequency> </Schedule> <OptionalFields> <Field>SequenceNumber</Field> <Field>RecordType</Field> <Field>RecordTimestamp</Field> <Field>Requester</Field> <Field>RequestId</Field> <Field>SourceIp</Field> <Field>Size</Field> <Field>StorageClass</Field> <Field>LastModifiedDate</Field> <Field>ETag</Field> <Field>IsMultipartUploaded</Field> <Field>ObjectType</Field> <Field>ObjectAcl</Field> <Field>Crc64</Field> <Field>EncryptionStatus</Field> </OptionalFields> </IncrementalInventory> </InventoryConfiguration>レスポンスのサンプル
HTTP/1.1 200 OK x-oss-request-id: 56594298207FB3044385**** Date: Mon, 31 Oct 2016 12:00:00 GMT Content-Length: 0 Server: AliyunOSS
SDK
この API は、以下の SDK で利用可能です。
ossutil
この操作に対応する ossutil コマンドの詳細については、「put-bucket-inventory」をご参照ください。
エラーコード
エラーコード | HTTP ステータスコード | 説明 |
InvalidArgument | 400 | 無効なパラメーターが渡されました。 |
InventoryExceedLimit | 400 | インベントリ構成ルールの数が上限を超えています。 |
AccessDenied | 403 |
|
InventoryAlreadyExist | 409 | 要求されたインベントリルールは既に存在します。 |