バケットのインベントリを設定します。
注意事項
インベントリを使用して、バケット内のオブジェクトに関する情報(オブジェクトの数、サイズ、ストレージタイプ、暗号化ステータスなど)を取得できます。 バケットのインベントリを設定する際は、以下の点にご注意ください。
バケットオーナー、または
oss:PutBucketInventory権限を持つユーザーのみが、PutBucketInventory リクエストを開始できます。 詳細については、「RAM ユーザーにカスタムポリシーをアタッチする」をご参照ください。バケットのインベントリを設定する前に、RAM ロールを作成する必要があります。 RAM ロールには、ソースバケットからすべてのオブジェクトを読み取り、デスティネーションバケットにオブジェクトを書き込む権限が必要です。 バケットインベントリ機能を初めて使用する場合は、Object Storage Service (OSS) コンソールでインベントリを設定することをお勧めします。 インベントリを設定した後、OSS リソースに対するすべての操作を実行する権限を持つ RAM ロールを取得できます。 詳細については、「バケットインベントリ」をご参照ください。
1 つのバケットに最大 1,000 個のインベントリを設定できます。
インベントリを設定するソースバケットは、インベントリリストが保存されるデスティネーションバケットと同じリージョンにデプロイする必要があります。
リクエスト構文
リクエストヘッダーの inventoryId パラメーターは必須です。 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>
<Filter>
<Prefix>filterPrefix/</Prefix>
<LastModifyBeginTimeStamp>1637883649</LastModifyBeginTimeStamp>
<LastModifyEndTimeStamp>1638347592</LastModifyEndTimeStamp>
<LowerSizeBound>1024</LowerSizeBound>
<UpperSizeBound>1048576</UpperSizeBound>
<StorageClass>Standard,IA</StorageClass>
</Filter>
<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>
</InventoryConfiguration>リクエスト要素
要素 | タイプ | 必須 | 例 | 説明 |
Id | 文字列 | はい | report1 | インベントリの名前。名前は次の要件を満たしている必要があります。
|
IsEnabled | ブール値 | はい | true | バケットインベントリ機能を有効にするかどうかを指定します。 有効な値:
|
Filter | コンテナー | いいえ | N/A | オブジェクトのフィルタリングに使用するプレフィックスを格納するコンテナー。指定されたプレフィックスを含む名前のオブジェクトのみがインベントリに含まれます。 |
Prefix | 文字列 | いいえ | Pics/ | インベントリで指定されたプレフィックス。 親ノード:Filter |
LastModifyBeginTimeStamp | 文字列 | いいえ | 1637883649 | オブジェクトが最後に変更された時間範囲の開始。単位:秒。 有効な値:[1262275200, 253402271999] |
LastModifyEndTimeStamp | 文字列 | いいえ | 1638347592 | オブジェクトが最後に変更された時間範囲の終了。単位:秒。 有効な値:[1262275200, 253402271999] |
LowerSizeBound | 文字列 | いいえ | 1024 | 指定されたオブジェクトの最小サイズ。単位:B。 有効な値:[0 B, 48.8 TB] |
UpperSizeBound | 文字列 | いいえ | 1048576 | 指定されたオブジェクトの最大サイズ。単位:B。 有効な値:(0 B, 48.8 TB] |
StorageClass | 文字列 | いいえ | Standard,IA | オブジェクトのストレージタイプ。複数のストレージタイプを指定できます。 有効な値:
|
Destination | コンテナー | はい | N/A | エクスポートされたインベントリリストを格納するコンテナー。 |
OSSBucketDestination | コンテナー | はい | N/A | エクスポートされたインベントリリストが格納されるバケットに関する情報を格納するコンテナー。 親ノード:Destination |
Format | 文字列 | はい | CSV | エクスポートされたインベントリリストのフォーマット。エクスポートされたインベントリリストは、GZIP を使用して圧縮された CSV オブジェクトです。 有効な値:CSV 親ノード:OSSBucketDestination |
AccountId | 文字列 | はい | 100000000000000 | バケットオーナーによって PutBucketInventory 操作を呼び出す権限が付与されている Alibaba Cloud アカウントの ID。 親ノード:OSSBucketDestination |
RoleArn | 文字列 | はい | acs:ram::100000000000000:role/AliyunOSSRole | ソースバケットからすべてのオブジェクトを読み取り、デスティネーションバケットにオブジェクトを書き込む権限を持つロールの Alibaba Cloud Resource Name (ARN)。フォーマット: 親ノード: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 暗号化に使用する CMK を格納するコンテナー。 親ノード:Encryption |
KeyId | 文字列 | いいえ | keyId | KMS マネージドキーの ID。 親ノード:SSE-KMS |
Schedule | コンテナー | はい | N/A | インベントリリストがエクスポートされる頻度に関する情報を格納するコンテナー。 |
Frequency | 文字列 | はい | Daily | インベントリリストがエクスポートされる頻度。 有効な値:
親ノード:Schedule |
IncludedObjectVersions | 文字列 | はい | All | インベントリリストにオブジェクトのバージョン情報を含めるかどうかを指定します。 有効な値:
|
OptionalFields | コンテナー | いいえ | N/A | インベントリリストの設定フィールドを格納するコンテナー。 |
Field | 文字列 | いいえ | Size | インベントリリストに含まれる設定フィールド。
|
レスポンスヘッダー
PutBucketInventory リクエストに対するレスポンスのすべてのヘッダーは、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
OSS SDK
以下のプログラミング言語の OSS SDK を使用して、PutBucketInventory を呼び出すことができます。
ossutil
PutBucketInventory 操作に対応する ossutil コマンドについては、「put-bucket-inventory」をご参照ください。
エラーコード
エラーコード | HTTP ステータスコード | 説明 |
InvalidArgument | 400 | 1 つ以上のパラメーターが無効です。 |
InventoryExceedLimit | 400 | 設定されたインベントリ数が制限を超えています。 |
AccessDenied | 403 |
|
InventoryAlreadyExist | 409 | 設定しようとしているインベントリは既に存在します。 |