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

Object Storage Service:PutBucketInventory

最終更新日:Nov 08, 2024

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

使用上の注意

インベントリを使用して、オブジェクトの数量、サイズ、ストレージクラス、暗号化ステータスなど、バケット内のオブジェクトに関する情報を取得できます。 バケットのインベントリを設定するときは、次の項目に注意してください。

  • PutBucketInventory権限を持つバケット所有者またはユーザーのみがPutBucketInventoryリクエストを開始できます。

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

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

  • インベントリを構成するソースバケットは、インベントリリストが保存されているターゲットバケットと同じリージョンにデプロイする必要があります。

リクエスト構文

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

  • LastModifyBeginTimeStampLastModifyEndTimeStampLowerSizeBoundUpperSizeBoundStorageClassオプションは、中国 (青島) 、中国 (フフホト) 、ドイツ (フランクフルト) 、オーストラリア (シドニー)(サービス終了) の各リージョンでのみご利用いただけます。

  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>ETag</Field>
        <Field>StorageClass</Field>
        <Field>IsMultipartUploaded</Field>
        <Field>EncryptionStatus</Field>
     </OptionalFields>
  </InventoryConfiguration>

リクエスト要素

要素

データ型

必須

説明

Id

String

必須

report1

インベントリの名前。 名前の条件は次のとおりです。

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

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

IsEnabled

Boolean

true

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

有効な値:

  • true

  • false

フィルター

Container

任意

N/A

オブジェクトのフィルタリングに使用されるプレフィックスを格納するコンテナー。 指定されたプレフィックスを名前に含むオブジェクトのみがインベントリに含まれます。

プレフィックス

String

任意

写真 /

インベントリで指定されているプレフィックス。

親ノード: フィルター

LastModifyBeginTimeStamp

String

任意

1637883649

オブジェクトが最後に変更された時間範囲の開始。 単位は秒です。

有効な値: [1262275200, 253402271999]

LastModifyEndTimeStamp

String

任意

1638347592

オブジェクトが最後に変更された時間範囲の終了。 単位は秒です。

有効な値: [1262275200, 253402271999]

LowerSizeBound

String

任意

1024

指定されたオブジェクトの最小サイズ。 単位: B.

有効な値: [0 B, 48.8テラバイト]

UpperSizeBound

String

任意

1048576

指定されたオブジェクトの最大サイズ。 単位: B.

有効な値 :( 0 B、48.8テラバイト]

StorageClass

String

任意

スタンダード、IA

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

有効な値:

  • 標準

  • IA

  • アーカイブ

  • ColdArchive

  • All

目的地

Container

N/A

エクスポートされた在庫リストを格納するコンテナー。

OSSBucketDestination

Container

N/A

エクスポートされたインベントリリストが格納されているバケットに関する情報を格納するコンテナー。

親ノード: 宛先

Format

String

必須

CSV

エクスポートされた在庫リストの形式。 エクスポートされたインベントリリストは、GZIPを使用して圧縮されたCSVオブジェクトです。

有効値: CSV

親ノード: OSSBucketDestination

AccountId

String

必須

100000000000000

バケット所有者がPutBucketInventory操作を呼び出す権限を付与されたAlibaba CloudアカウントのID。

親ノード: OSSBucketDestination

RoleArn

String

必須

acs:ram::100000000000000:role/AliyunOSSRole

ソースバケットからすべてのオブジェクトを読み取り、ターゲットバケットにオブジェクトを書き込む権限を持つロールのAlibaba Cloud Resource Name (ARN) 。 形式: acs:ram::uid:role/rolename

親ノード: OSSBucketDestination

Bucket

String

必須

acs:oss ::: bucket_0001

エクスポートされたインベントリリストが保存されているバケットの名前。

親ノード: OSSBucketDestination

プレフィックス

String

任意

prefix1 /

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

親ノード: OSSBucketDestination

暗号化

Container

任意

N/A

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

有効な値:

  • SSE-OSS: OSS管理キーは、インベントリリストの暗号化と復号化に使用されます。

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

親ノード: OSSBucketDestination

詳細については、「サーバー側の暗号化」をご参照ください。

SSE-OSS

Container

任意

N/A

SSE-OSS暗号化方式に関する情報を格納するコンテナー。

親ノード: 暗号化

SSE-KMS

Container

任意

N/A

SSE-KMS暗号化に使用されるCMKを格納するコンテナー。

親ノード: 暗号化

KeyId

String

任意

keyId

KMS管理キーのID。

親ノード: SSE-KMS

スケジュール

Container

N/A

在庫リストがエクスポートされる頻度に関する情報を格納するコンテナ。

周波数

String

必須

毎日

在庫リストがエクスポートされる頻度。

有効な値:

  • 毎日: 在庫リストは毎日エクスポートされます。

  • 毎週: 在庫リストは毎週エクスポートされます。

親ノード: スケジュール

含まれるObjectVersions

String

必須

All

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

有効な値:

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

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

OptionalFields

Container

任意

N/A

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

フィールド

String

任意

サイズ

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

  • 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>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

エラーコード

エラーコード

HTTPステータスコード

説明

InvalidArgument

400

指定された1つ以上のパラメーターが無効です。

InventoryExceedLimit

400

設定されたインベントリの数が制限を超えています。

AccessDenied

403

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

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

InventoryAlreadyExist

409

設定するインベントリは既に存在します。