PutBucketInventory を使用して、バケットのインベントリ ルールを設定します。
注意事項
インベントリを使用して、オブジェクト数、サイズ、ストレージクラス、暗号化ステータスなど、バケット内のオブジェクトに関する情報を取得できます。 インベントリ ルールを設定する際は、次の点にご注意ください:
インベントリ ルールを設定する前に、RAM ロールを作成する必要があります。 このロールには、ソースバケットからすべてのオブジェクトを読み取り、送信先バケットにオブジェクトを書き込む権限が必要です。 OSS コンソールを使用して最初のインベントリ ルールを設定することを推奨します。コンソールは、必要な権限を持つ RAM ロールの作成を支援します。 RAM ロールに必要な権限の詳細については、バケットインベントリをご参照ください。
1 つのバケットに対して最大 1,000 個のインベントリ ルールを設定できます。
エクスポートされたインベントリファイルのソースバケットと送信先バケットは、同じリージョンにある必要があります。
増分インベントリを有効にするには、テクニカルサポートにお問い合わせください。 この機能はメキシコリージョンでのみサポートされています。
権限
デフォルトでは、Alibaba Cloud アカウント (root ユーザー) は完全な権限を持っています。 Alibaba Cloud アカウント (root ユーザー) 配下の RAM ユーザーまたは RAM ロールは、デフォルトではいかなる権限も持っていません。 Alibaba Cloud アカウント (root ユーザー) またはアカウント管理者は、RAM ポリシーまたはバケットポリシーを通じて操作権限を付与する必要があります。
|
API |
アクション |
説明 |
|
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>Monthly</Frequency>
<DayOfMonth>1</DayOfMonth>
</Schedule>
<IncludedObjectVersions>All</IncludedObjectVersions>
<OptionalFields>
<Field>Size</Field>
<Field>LastModifiedDate</Field>
<Field>TransitionTime</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 | String | はい | report1 | インベントリのカスタム名。 名前は次の要件を満たす必要があります:
|
IsEnabled | Boolean | はい | true | インベントリが有効かどうかを示します。 有効値:
|
Filter | Container | いいえ | N/A | フィルターのコンテナ。インベントリに含めるオブジェクトの基準を指定します。 |
Prefix | String | いいえ | Pics/ | オブジェクトをフィルタリングするためのプレフィックス。 親ノード: Filter |
LastModifyBeginTimeStamp | String | いいえ | 1637883649 | オブジェクトの最終更新時刻範囲の開始時刻。 値は秒単位の UNIX タイムスタンプです。 値の範囲: [1262275200, 253402271999] |
LastModifyEndTimeStamp | String | いいえ | 1638347592 | オブジェクトの最終更新時刻範囲の終了時刻。 値は秒単位の UNIX タイムスタンプです。 値の範囲: [1262275200, 253402271999] |
LowerSizeBound | String | いいえ | 1024 | インベントリに含めるオブジェクトの最小サイズ (バイト単位)。 値は 0 B 以上、48.8 TB 以下である必要があります。 |
UpperSizeBound | String | いいえ | 1048576 | インベントリに含めるオブジェクトの最大サイズ (バイト単位)。 値は 0 B より大きく、48.8 TB 以下である必要があります。 |
StorageClass | String | いいえ | Standard,IA | インベントリに含めるオブジェクトのストレージクラス。 複数のストレージクラスを指定できます。 有効値:
|
Destination | Container | はい | N/A | インベントリレポートが保存される送信先に関する情報のコンテナ。 |
OSSBucketDestination | Container | はい | N/A | インベントリレポートが保存されるバケットに関する情報のコンテナ。 親ノード: Destination |
Format | String | はい | CSV | インベントリレポートのフォーマット。 レポートは GZIP 圧縮された CSV ファイルです。 有効値: CSV 親ノード: OSSBucketDestination |
AccountId | String | はい | 100000000000000 | 送信先バケットを所有する Alibaba Cloud アカウントの ID。 親ノード: OSSBucketDestination |
RoleArn | String | はい | acs:ram::100000000000000:role/AliyunOSSRole | ソースバケットからすべてのオブジェクトを読み取り、送信先バケットにオブジェクトを書き込む権限を持つ RAM ロールの Alibaba Cloud リソースネーム (ARN)。 フォーマットは 親ノード: OSSBucketDestination |
Bucket | String | はい | acs:oss:::bucket_0001 | インベントリレポートの送信先バケット。 親ノード: OSSBucketDestination |
Prefix | String | いいえ | prefix1/ | インベントリレポートファイルが保存されるパスのプレフィックス。 親ノード: OSSBucketDestination |
Encryption | Container | いいえ | N/A | インベントリレポートのサーバ側暗号化設定のコンテナ。 有効値:
親ノード: OSSBucketDestination サーバ側暗号化の詳細については、「サーバ側暗号化」をご参照ください。 |
SSE-OSS | Container | いいえ | N/A | SSE-OSS 暗号化設定のコンテナ。 親ノード: 暗号化 |
SSE-KMS | Container | いいえ | N/A | SSE-KMS 暗号化設定のコンテナ。 親ノード: Encryption |
KeyId | String | いいえ | keyId | KMS によって管理される CMK の ID。 親ノード: SSE-KMS |
Schedule | Container | はい | N/A | インベントリレポートを生成するスケジュールのコンテナ。 |
Frequency | String | はい | Daily | インベントリレポートを生成する頻度を指定します。 有効値:
重要 Monthly スケジュールは、中国 (張家口)、中国 (中衛)、米国 (バージニア)、米国 (シリコンバレー)、メキシコ、フランス (パリ)、 のリージョンではサポートされていません。 親ノード: Schedule |
DayOfMonth | 正の整数 | いいえ | 1 | Frequency が Monthly に設定されている場合、インベントリを生成する月の日を指定します。 値は 1 から 31 までの正の整数である必要があります。
説明 この日付はインベントリタスクが開始される日時であり、レポートが配信される日時ではありません。 インベントリの生成は非同期タスクであり、その所要時間はオブジェクト数に依存するため、レポートはこの日付以降に配信されます。 親ノード: Schedule |
AutoDelete | Boolean | いいえ | true | 1回限りのインベントリが生成された後、インベントリ設定を削除するかどうかを指定します。 この要素は、Frequency が Once に設定されている場合にのみ有効です。 有効値: true、false 親ノード: Schedule |
IncludedObjectVersions | String | はい | All | インベントリにオブジェクトのバージョンを含めるかどうかを指定します。 有効値:
|
OptionalFields | Container | いいえ | N/A | インベントリレポートに含めるオプションフィールドのコンテナ。 |
Field | String | いいえ | Size | インベントリレポートに含めるオプションフィールド。
|
IncrementalInventory | Container | いいえ | N/A | 増分インベントリ設定のコンテナ。 |
IsEnabled | Boolean | はい | true | 増分インベントリを有効にするかどうかを指定します。 有効値:
この要素が true に設定されている場合、InventoryConfiguration/IsEnabled が false に設定されていても、増分インベントリは有効になり、効果を発揮します。 親ノード: IncrementalInventory |
Schedule | Container | はい | N/A | 増分インベントリを生成するスケジュールのコンテナ。 親ノード: IncrementalInventory |
Frequency | 正の整数 | はい | 600 | 増分インベントリの生成頻度 (秒単位)。 システムは 600 秒の固定頻度を使用します。 各期間において、ディレクトリプレフィックスが自動的に作成され、その期間中に生成された対応するマニフェストファイルと複数の CSV ファイルが作成されます。 カスタム頻度はサポートされていません。 親ノード: Schedule |
OptionalFields | Container | いいえ | N/A | 増分インベントリファイルに含めるプロパティのコンテナ。 親ノード: IncrementalInventory |
Field | String | いいえ | 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
月次インベントリ設定
次のリクエストは、毎月 3 日にレポートを生成するようにインベントリを設定します。
リクエスト例
PUT /?inventory&inventoryId=monthly-report 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>monthly-report</Id> <IsEnabled>true</IsEnabled> <Filter> <Prefix>logs/</Prefix> </Filter> <Destination> <OSSBucketDestination> <Format>CSV</Format> <AccountId>100000000000000</AccountId> <RoleArn>acs:ram::100000000000000:role/AliyunOSSRole</RoleArn> <Bucket>acs:oss:::destbucket</Bucket> <Prefix>monthly-inventory/</Prefix> </OSSBucketDestination> </Destination> <Schedule> <Frequency>Monthly</Frequency> <DayOfMonth>3</DayOfMonth> </Schedule> <IncludedObjectVersions>All</IncludedObjectVersions> <OptionalFields> <Field>Size</Field> <Field>LastModifiedDate</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
1回限りのインベントリ設定
リクエスト例
PUT /?inventory&inventoryId=once-report 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>once-report</Id> <IsEnabled>true</IsEnabled> <Filter> <Prefix>log/</Prefix> </Filter> <Destination> <OSSBucketDestination> <Format>CSV</Format> <AccountId>100000000000000</AccountId> <RoleArn>acs:ram::100000000000000:role/AliyunOSSRole</RoleArn> <Bucket>acs:oss:::destbucket</Bucket> <Prefix>once-inventory/</Prefix> </OSSBucketDestination> </Destination> <Schedule> <Frequency>Once</Frequency> <AutoDelete>true</AutoDelete> </Schedule> <IncludedObjectVersions>All</IncludedObjectVersions> <OptionalFields> <Field>Size</Field> <Field>LastModifiedDate</Field> <Field>StorageClass</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
この操作は、次の言語の SDK を使用して呼び出すことができます:
ossutil CLI
PutBucketInventory 操作に対応する ossutil コマンドは put-bucket-inventory です。
エラーコード
エラーコード | HTTP ステータスコード | 説明 |
InvalidArgument | 400 | 1 つ以上の指定されたパラメーターが無効です。 |
InventoryExceedLimit | 400 | 設定されたインベントリ ルールの数が上限を超えています。 |
AccessDenied | 403 |
|
InventoryAlreadyExist | 409 | インベントリ ルールはすでに存在します。 |