すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:PutBucketInventory

最終更新日:Mar 22, 2025

バケットのインベントリを設定します。

注意事項

インベントリを使用して、バケット内のオブジェクトに関する情報(オブジェクトの数、サイズ、ストレージタイプ、暗号化ステータスなど)を取得できます。 バケットのインベントリを設定する際は、以下の点にご注意ください。

  • バケットオーナー、または oss:PutBucketInventory 権限を持つユーザーのみが、PutBucketInventory リクエストを開始できます。 詳細については、「RAM ユーザーにカスタムポリシーをアタッチする」をご参照ください。

  • バケットのインベントリを設定する前に、RAM ロールを作成する必要があります。 RAM ロールには、ソースバケットからすべてのオブジェクトを読み取り、デスティネーションバケットにオブジェクトを書き込む権限が必要です。 バケットインベントリ機能を初めて使用する場合は、Object Storage Service (OSS) コンソールでインベントリを設定することをお勧めします。 インベントリを設定した後、OSS リソースに対するすべての操作を実行する権限を持つ RAM ロールを取得できます。 詳細については、「バケットインベントリ」をご参照ください。

  • 1 つのバケットに最大 1,000 個のインベントリを設定できます。

  • インベントリを設定するソースバケットは、インベントリリストが保存されるデスティネーションバケットと同じリージョンにデプロイする必要があります。

リクエスト構文

重要
  • リクエストヘッダーの inventoryId パラメーターは必須です。 inventoryId パラメーターの値は、Id リクエストパラメーターの値と同じである必要があります。

  • LastModifyBeginTimeStampLastModifyEndTimeStampLowerSizeBoundUpperSizeBound、および 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

インベントリの名前。名前は次の要件を満たしている必要があります。

  • 現在のバケット内でグローバルに一意である必要があります。

  • 長さは 192 文字を超えることはできません。

IsEnabled

ブール値

はい

true

バケットインベントリ機能を有効にするかどうかを指定します。

有効な値:

  • true

  • false

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

オブジェクトのストレージタイプ。複数のストレージタイプを指定できます。

有効な値:

  • Standard

  • IA

  • Archive

  • ColdArchive

  • All

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)。フォーマット:acs:ram::uid:role/rolename

親ノード:OSSBucketDestination

Bucket

文字列

はい

acs:oss:::bucket_0001

エクスポートされたインベントリリストが格納されるバケットの名前。

親ノード:OSSBucketDestination

Prefix

文字列

いいえ

prefix1/

エクスポートされたインベントリリストが格納されるパスのプレフィックス。

親ノード:OSSBucketDestination

Encryption

コンテナー

いいえ

N/A

エクスポートされたインベントリリストの暗号化方法を格納するコンテナー。

有効な値:

  • SSE-OSS:OSS マネージドキーを使用して、インベントリリストを暗号化および復号化します。

  • SSE-KMS:デフォルトのカスタマーマスターキー (CMK)、または Key Management Service (KMS) によって管理される指定された CMK を使用して、インベントリリストを暗号化および復号化します。

親ノード: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

インベントリリストがエクスポートされる頻度。

有効な値:

  • Daily:インベントリリストは毎日エクスポートされます。

  • Weekly:インベントリリストは毎週エクスポートされます。

親ノード:Schedule

IncludedObjectVersions

文字列

はい

All

インベントリリストにオブジェクトのバージョン情報を含めるかどうかを指定します。

有効な値:

  • All:オブジェクトのすべてのバージョンの情報がエクスポートされます。

  • Current:オブジェクトの現在のバージョンの情報のみがエクスポートされます。

OptionalFields

コンテナー

いいえ

N/A

インベントリリストの設定フィールドを格納するコンテナー。

Field

文字列

いいえ

Size

インベントリリストに含まれる設定フィールド。

  • Size:オブジェクトのサイズ。

  • LastModifiedDate:オブジェクトの最終更新時刻。

  • ETag:オブジェクトの ETag。ETag はオブジェクトのコンテンツを識別します。

  • StorageClass:オブジェクトのストレージクラス。

  • IsMultipartUploaded:オブジェクトがマルチパートアップロードを使用してアップロードされたかどうかを指定します。

  • EncryptionStatus:オブジェクトの暗号化ステータス。

  • ObjectAcl:オブジェクトのアクセス制御リスト (ACL)。

  • TaggingCount:タグの数。

  • ObjectType:オブジェクトのタイプ。

  • Crc64:オブジェクトの CRC-64。

レスポンスヘッダー

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

  • PutBucketInventory リクエストに認証情報が含まれていません。

  • この操作を実行する権限がありません。

InventoryAlreadyExist

409

設定しようとしているインベントリは既に存在します。