View a markdown version of this page

PUT バケットライフサイクル (廃止) - Amazon Simple Storage Service

PUT バケットライフサイクル (廃止)

説明

重要

この API の更新バージョンについては、PutBucketLifecycleConfiguration を参照してください。このバージョンは非推奨です。既存のライフサイクル設定は引き続き使用できます。新しいライフサイクル設定については、更新された API を使用してください。

バケットの新しいライフサイクル設定を作成するか、既存のライフサイクル設定を置き換えます。詳細については、「Amazon Simple Storage Service ユーザーガイド」の「オブジェクトのライフサイクルの管理」を参照してください。

アクセス許可

デフォルトでは、バケット、オブジェクト、関連サブリソース (例:ライフサイクル設定やウェブサイト設定) を含むすべての Amazon S3 リソースはプライベートです。リソースの所有者 (リソースを作成した AWS アカウント) のみが、リソースにアクセスできます。リソースの所有者は、アクセスポリシーを作成することにより、オプションで他のユーザーにアクセス許可を付与できます。このオペレーションでは、ユーザーは s3:PutLifecycleConfiguration アクセス許可を取得する必要があります。

アクセス許可を明示的に拒否することもできます。明示的な拒否は、他のあらゆるアクセス許可よりも優先されます。ユーザーまたはアカウントがバケットからオブジェクトを削除できないようにするには、次のアクションのアクセス許可を拒否する必要があります。

  • s3:DeleteObject

  • s3:DeleteObjectVersion

  • s3:PutLifecycleConfiguration

アクセス許可の詳細については、「Amazon Simple Storage Service ユーザーガイド」の「Amazon S3 リソースへのアクセス許可の管理」を参照してください。

リクエスト

構文

PUT /?lifecycle HTTP/1.1 Host: bucketname.s3.amazonaws.com Content-Length: length Date: date Authorization: authorization string Content-MD5: MD5 Lifecycle configuration in the request body

認可文字列の詳細については、「リクエストの認証 (AWS 署名バージョン 4)」を参照してください。

リクエストパラメータ

オペレーションの実装では、リクエストパラメータを使用しません。

リクエストヘッダー

名前 説明 必須
Content-MD5

データの Base64 エンコードされた 128 ビット MD5 ダイジェスト。このヘッダーをメッセージ整合性チェックとして使用して、リクエスト本文が転送中に破損していないことを確認する必要があります。詳細については、RFC 1864を参照してください。

タイプ: 文字列

デフォルト: なし

はい

リクエスト本文

リクエストでは、リクエスト本文でライフサイクル設定を指定します。ライフサイクル設定は XML 形式で指定します。以下は、基本的なライフサイクル設定の一例です。1 つのルールを指定します。ルール内の Prefix は、ルールが適用されるオブジェクトを特定します。このルールでは、2 つのアクション (TransitionExpiration) も指定します。各アクションは、Amazon S3 がアクションを実行するタイムラインを指定します。Status は、ルールが有効か無効かを示します。

<LifecycleConfiguration> <Rule> <ID>sample-rule</ID> <Prefix>key-prefix</Prefix> <Status>rule-status</Status> <Transition>       <Date>value</Date>       <StorageClass>storage class</StorageClass>     </Transition> <Expiration> <Days>value</Days> </Expiration> </Rule> </LifecycleConfiguration>

バケットの状態が、バージョニングが有効か、またはバージョニングが停止している場合、同じオブジェクトの複数のバージョン (現行バージョン 1 つと 非現行バージョン 0 個以上) を保持できます。次のライフサイクル設定では、現在のものではないオブジェクトバージョンに固有のアクション (NoncurrentVersionTransitionNoncurrentVersionExpiration) を指定します。

<LifecycleConfiguration> <Rule> <ID>sample-rule</ID> <Prefix>key-prefix</Prefix> <Status>rule-status</Status> <NoncurrentVersionTransition> <NoncurrentDays>value</NoncurrentDays> <StorageClass>storage class</StorageClass> </NoncurrentVersionTransition> <NoncurrentVersionExpiration> <NoncurrentDays>value</NoncurrentDays> </NoncurrentVersionExpiration> </Rule> </LifecycleConfiguration>

マルチパートアップロード API を使用すると、大容量オブジェクトをいくつかに分けてアップロードできます。マルチパートアップロードの詳細については、「Amazon Simple Storage Service ユーザーガイド」の「マルチパートアップロードの概要」を参照してください。ライフサイクル設定を使用すると、マルチパートアップロードが指定の日数以内に完了しなかった場合、不完全なマルチパートアップロード (ルールで指定されたキー名プレフィックスによって識別される) を停止するように Amazon S3 に指示できます。Amazon S3 は、マルチパートアップロードをキャンセルするとき、アップロードに関連付けられているすべてのパートを削除します。これにより、Amazon S3 に一部のパートが保存されたままの不完全なマルチパートアップロードは存在しなくなるため、それらに対してストレージコストを支払う必要はありません。AbortIncompleteMultipartUpload アクションにルールを指定するライフサイクル設定の例を次に示します。このアクションは、開始から 7 日後に不完全なマルチパートアップロードをキャンセルするように Amazon S3 に指示します。

<LifecycleConfiguration> <Rule> <ID>sample-rule</ID> <Prefix>SomeKeyPrefix/</Prefix> <Status>rule-status</Status> <AbortIncompleteMultipartUpload> <DaysAfterInitiation>7</DaysAfterInitiation> </AbortIncompleteMultipartUpload> </Rule> </LifecycleConfiguration>

以下のセクションでは、ライフサイクル設定における XML 要素について説明します。

名前 説明 必須
AbortIncompleteMultipartUpload

不完全なマルチパートアップロードが中止オペレーションの対象となるタイミングを指定するためのコンテナ。

子: DaysAfterInitiation

型: コンテナ

祖先: Rule

はい (ルールに他のアクションが指定されていない場合)
Date

Amazon S3 がアクションを実行する日付。詳細については、「Amazon Simple Storage Service ユーザーガイド」中の「ライフサイクルルール: 特定の日付に基づく」を参照してください。

日付の値は、ISO 8601 形式に従う必要があります。この時刻は常に午前 0 時 (UTC) となります。

タイプ: 文字列

祖先: Expiration または Transition

はい (DaysExpiredObjectDeleteMarker がない場合)
Days

オブジェクトの作成後、特定のルールアクションが有効になるまでの日数を指定します。

型: Transition で使用する場合は非負整数、Expiration で使用する場合は正整数

祖先: ExpirationTransition

はい (DateExpiredObjectDeleteMarker がない場合)
DaysAfterInitiation

マルチパートアップロードを開始してから、そのマルチパートアップロードを完了する必要がある日数を指定します。指定した日数で完了しない場合、中止オペレーションの対象となり、Amazon S3 は不完全なマルチパートアップロードをキャンセルします。

型: 正の整数

祖先: AbortIncompleteMultipartUpload

はい (親タグが指定されている場合)
Expiration

このアクションは、オブジェクトの有効期間内で、Amazon S3 が適切な失効アクションを実行する期間を指定します。Amazon S3 が実行するアクションは、バケットでバージョニングが有効になっているかどうかによって異なります。

  • バケットでバージョニングが有効になっていない場合、Amazon S3 はオブジェクトの唯一のコピーを完全に削除します。

  • バージョニングが有効になっているバケット (またはバージョニングが停止されている) の場合、 アクションは現在のバージョンのオブジェクトにのみ適用されます。バージョニングが有効なバケットは、同じオブジェクトの複数のバージョン (1 個の現行バージョンと 0 個以上の非現行バージョン) を持つことができます。

    Amazon S3 は、現在のバージョンを削除する代わりに、削除マーカーを新しい現在のバージョンとして追加することで、そのバージョンを非現行バージョンとします。

    重要

    バケットがバージョニング停止状態にある場合、Amazon S3 はバージョン ID として null を使用する削除マーカーを作成します。バージョン ID が null のバージョンがある場合、Amazon S3 はそのバージョンを上書きします。

    注記

    非現行オブジェクトの有効期限を設定するには、NoncurrentVersionExpiration アクションを使用します。

型: コンテナ

子: Days または Date

祖先: Rule

はい (Rule に他のアクションが存在しない場合)
ID

ルール用の一意の識別子。値は 255 文字以下にする必要があります。

タイプ: 文字列

祖先: Rule

いいえ
LifecycleConfiguration

ライフサイクルルールのコンテナ。最大 1,000 個のルールを追加できます。

型: コンテナ

子: Rule

祖先: なし

はい
ExpiredObjectDeleteMarker

バージョン管理されたバケット (バージョニングが有効なバケットまたはバージョニングが停止されたバケット) では、この要素をライフサイクル設定に追加して、期限切れのオブジェクト削除マーカーを削除するように Amazon S3 に指示できます。例については、「Amazon Simple Storage Service ユーザーガイド」の「例 8: 期限切れオブジェクト削除マーカーの削除」を参照してください。バージョン管理されていないバケットには追加しないでください。このタイプのバケットには削除マーカーを含めることができないためです。

タイプ: 文字列

有効な値: true | false (値 false は許可されますが、no-op です。つまり、Amazon S3 はアクションを実行しません)

祖先: Expiration

はい (DateDays がない場合)
NoncurrentDays

Amazon S3 で関連付けられたアクションが実行されるまでオブジェクトが最新でなくなってからの日数を指定します。非現行になってからの日数の計算の詳細については、「Amazon Simple Storage Service ユーザーガイド」の「オブジェクトが最新でなくなってからの期間を Amazon S3 が計算する方法」を参照してください。

型: NoncurrentVersionTransition で使用する場合は非負整数、NoncurrentVersionExpiration で使用する場合は正整数

祖先: NoncurrentVersionExpiration または NoncurrentVersionTransition

はい
NoncurrentVersionExpiration

最新ではないオブジェクトのバージョンが期限切れになる時期を指定します。期限切れになると、Amazon S3 により、最新ではないオブジェクトのバージョンが完全に削除されます。

バージョニングが有効 (または停止) になっているバケットにこのライフサイクル設定アクションを構成し、オブジェクトのライフサイクル内の特定の期間に非現行オブジェクトのバージョンを削除するように Amazon S3 に指示します。

型: コンテナ

子: NoncurrentDays

祖先: Rule

はい (Rule に他のアクションが存在しない場合)
NoncurrentVersionTransition

非現行オブジェクトが、STANDARD_IAONEZONE_IA、または ストレージクラスに移行する時期を記述する移行ルールのコンテナ。

バケットでバージョニングが有効な場合 (またはバージョニングが停止している場合)、このアクションを設定して、オブジェクトの有効期間内の特定の期間にオブジェクトの非現行バージョンを移行するように Amazon S3 に指示できます。

型: コンテナ

子: NoncurrentDays と StorageClass

祖先: Rule

はい (Rule に他のアクションが存在しない場合)
Prefix

ルールの適用対象となるオブジェクトを 1 つ以上特定するオブジェクトキープレフィックス。

タイプ: 文字列

祖先: Rule

はい
Rule

ライフサイクルルールのコンテナ。ライフサイクル設定には、最大 1,000 個のルールを含めることができます。

型: コンテナ

祖先: LifecycleConfiguration

はい
Status

有効にすると、Amazon S3 はスケジュールどおりにルールを実行します。無効にすると、Amazon S3 はルールを無視します。

タイプ: 文字列

祖先: Rule

有効な値: Enabled、Disabled

はい
StorageClass

オブジェクトの移行先となる Amazon S3 ストレージクラスを指定します。

タイプ: 文字列

祖先: Transition と NoncurrentVersionTransition

有効な値: STANDARD_IA | ONEZONE_IA | GLACIER

はい

この要素は、一方または両方の祖先を指定する場合にのみ必要です。

Transition

このアクションは、オブジェクトの有効期間内で Amazon S3 がオブジェクトを STANDARD_IAONEZONE_IA、またはストレージクラスに移行する期間を指定します。このアクションが有効な場合、Amazon S3 の動作は、バケットのバージョニングが有効になっているかどうかによって異なります。

  • バケットでバージョニングが有効になっていない場合、Amazon S3 はオブジェクトの唯一のコピーを指定されたストレージクラスに移行します。

  • バケットでバージョニングが有効になっている (またはバージョニングが停止されている) 場合、Amazon S3 はルールで識別されたオブジェクトの現在のバージョンのみを移行します。

    注記

    バージョニングが有効なバケットでは、オブジェクトの複数のバージョンを保持できます。このアクションは、オブジェクトの非現行バージョンには影響しません。非現行オブジェクトを移行するには、NoncurrentVersionTransition アクションを使用する必要があります。

型: コンテナ

子: Days または Date、および StorageClass

祖先: Rule

はい (Rule に他のアクションが存在しない場合)

レスポンス

レスポンスヘッダー

このオペレーションの実装はほとんどのレスポンスに共通のレスポンスヘッダーのみを使用します。詳細については、「共通のレスポンスヘッダー」を参照してください。

レスポンス要素

このオペレーションの実装では、レスポンス要素は返されません。

特殊なエラー

このオペレーションの実装では、特殊なエラーは返されません。Amazon S3 のエラーとエラーコードのリストの一般的な情報については、「エラーレスポンス」を参照してください。

例 1: バージョニングが有効になっていないバケットにライフサイクル設定を追加する

以下のライフサイクル設定では、それぞれ 1 つのアクションを持つ 2 つのルールが指定されています。

  • Transition アクションは、作成から 30 日後に「documents/」プレフィックスを持つオブジェクトをストレージクラスに移行するように Amazon S3 に指示します。

  • Expiration アクションは、作成から 365 日後に「logs/」プレフィックスを持つオブジェクトを削除するように Amazon S3 に指示します。

<LifecycleConfiguration> <Rule> <ID>id1</ID> <Prefix>documents/</Prefix> <Status>Enabled</Status> <Transition> <Days>30</Days> <StorageClass>GLACIER</StorageClass> </Transition> </Rule> <Rule> <ID>id2</ID> <Prefix>logs/</Prefix> <Status>Enabled</Status> <Expiration> <Days>365</Days> </Expiration> </Rule> </LifecycleConfiguration>

以下は、前述のライフサイクル設定を examplebucket バケットに追加する PUT /?lifecycle リクエストの例です。

PUT /?lifecycle HTTP/1.1 Host: examplebucket.s3.amazonaws.com x-amz-date: Wed, 14 May 2014 02:11:21 GMT Content-MD5: q6yJDlIkcBaGGfb3QLY69A== Authorization: authorization string Content-Length: 415 <LifecycleConfiguration> <Rule> <ID>id1</ID> <Prefix>documents/</Prefix> <Status>Enabled</Status> <Transition> <Days>30</Days> <StorageClass>GLACIER</StorageClass> </Transition> </Rule> <Rule> <ID>id2</ID> <Prefix>logs/</Prefix> <Status>Enabled</Status> <Expiration> <Days>365</Days> </Expiration> </Rule> </LifecycleConfiguration>

レスポンスの例を次に示します。

HTTP/1.1 200 OK x-amz-id-2: r+qR7+nhXtJDDIJ0JJYcd+1j5nM/rUFiiiZ/fNbDOsd3JUE8NWMLNHXmvPfwMpdc x-amz-request-id: 9E26D08072A8EF9E Date: Wed, 14 May 2014 02:11:22 GMT Content-Length: 0 Server: AmazonS3

例 2: バージョニングが有効になっているバケットにライフサイクル設定を追加する

以下のライフサイクル設定では、それぞれ Amazon S3 が実行するアクションを 1 つずつ含む 2 つのルールが指定されています。これらのアクションは、バケットのバージョニングが有効になっている場合、またはバージョニングが停止されている場合に指定します。

  • NoncurrentVersionExpiration アクションは、オブジェクトが非現行になってから 100 日後に、「logs/」プレフィックスが付いたオブジェクトの非現行バージョンを期限切れにするように Amazon S3 に指示します。

  • NoncurrentVersionTransition アクションは、オブジェクトが非現行になってから 30 日後に、「documents/」プレフィックスが付いたオブジェクトの非現行バージョンをストレージクラスに移行するように Amazon S3 に指示します。

<LifeCycleConfiguration> <Rule> <ID>DeleteAfterBecomingNonCurrent</ID> <Prefix>logs/</Prefix> <Status>Enabled</Status> <NoncurrentVersionExpiration> <NoncurrentDays>100</NoncurrentDays> </NoncurrentVersionExpiration> </Rule> <Rule> <ID>TransitionAfterBecomingNonCurrent</ID> <Prefix>documents/</Prefix> <Status>Enabled</Status> <NoncurrentVersionTransition> <NoncurrentDays>30</NoncurrentDays> <StorageClass>GLACIER</StorageClass> </NoncurrentVersionTransition> </Rule> </LifeCycleConfiguration>

以下は、前述のライフサイクル設定を examplebucket バケットに追加する PUT /?lifecycle リクエストの例です。

PUT /?lifecycle HTTP/1.1 Host: examplebucket.s3.amazonaws.com x-amz-date: Wed, 14 May 2014 02:21:48 GMT Content-MD5: 96rxH9mDqVNKkaZDddgnw== Authorization: authorization string Content-Length: 598 <LifeCycleConfiguration> <Rule> <ID>DeleteAfterBecomingNonCurrent</ID> <Prefix>logs/</Prefix> <Status>Enabled</Status> <NoncurrentVersionExpiration> <NoncurrentDays>1</NoncurrentDays> </NoncurrentVersionExpiration> </Rule> <Rule> <ID>TransitionSoonAfterBecomingNonCurrent</ID> <Prefix>documents/</Prefix> <Status>Enabled</Status> <NoncurrentVersionTransition> <NoncurrentDays>0</NoncurrentDays> <StorageClass>GLACIER</StorageClass> </NoncurrentVersionTransition> </Rule> </LifeCycleConfiguration>

レスポンスの例を次に示します。

HTTP/1.1 200 OK x-amz-id-2: aXQ+KbIrmMmoO//3bMdDTw/CnjArwje+J49Hf+j44yRb/VmbIkgIO5A+PT98Cp/6k07hf+LD2mY= x-amz-request-id: 02D7EC4C10381EB1 Date: Wed, 14 May 2014 02:21:50 GMT Content-Length: 0 Server: AmazonS3

その他の例

STANDARD_IA や ONEZONE_IA などのストレージクラスにオブジェクトを移行するその他の例については、「ライフサイクル設定の例」を参照してください。