

# PUT バケットライフサイクル (廃止)
<a name="v1-rel-RESTBucketPUTlifecycle"></a>

## 説明
<a name="v1-rel-RESTBucketPUTlifecycle-description"></a>

 

**重要**  
この API の更新バージョンについては、[PutBucketLifecycleConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html) を参照してください。このバージョンは非推奨です。既存のライフサイクル設定は引き続き使用できます。新しいライフサイクル設定については、更新された API を使用してください。

バケットの新しいライフサイクル設定を作成するか、既存のライフサイクル設定を置き換えます。詳細については、「*Amazon Simple Storage Service ユーザーガイド*」の「[オブジェクトのライフサイクルの管理](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html)」を参照してください。

### アクセス許可
<a name="v1-rel-put-object-lifecycle-permissions"></a>

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

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

アクセス許可の詳細については、「*Amazon Simple Storage Service ユーザーガイド*」の「[Amazon S3 リソースへのアクセス許可の管理](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html)」を参照してください。

## リクエスト
<a name="v1-rel-RESTBucketPUTlifecycle-requests"></a>

### 構文
<a name="v1-rel-RESTBucketPUTlifecycle-requests-syntax"></a>

```
1. PUT /?lifecycle HTTP/1.1
2. Host: {{bucketname}}.s3.amazonaws.com
3. Content-Length: {{length}}
4. Date: {{date}}
5. Authorization: {{authorization string}} 
6. Content-MD5: {{MD5}}
7. 
8. {{Lifecycle configuration in the request body}}
```

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

### リクエストパラメータ
<a name="v1-rel-RESTBucketPUTlifecycle-requests-request-parameters"></a>

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

### リクエストヘッダー
<a name="v1-rel-RESTBucketPUTlifecycle-requests-request-headers"></a>


|  名前  |  説明  |  必須  | 
| --- | --- | --- | 
| Content-MD5 | データの Base64 エンコードされた 128 ビット MD5 ダイジェスト。このヘッダーをメッセージ整合性チェックとして使用して、リクエスト本文が転送中に破損していないことを確認する必要があります。詳細については、[RFC 1864](http://www.ietf.org/rfc/rfc1864.txt)を参照してください。<br />タイプ: 文字列 <br />デフォルト: なし |  はい  | 

### リクエスト本文
<a name="v1-rel-RESTBucketPUTlifecycle-requests-request-elements"></a>

リクエストでは、リクエスト本文でライフサイクル設定を指定します。ライフサイクル設定は XML 形式で指定します。以下は、基本的なライフサイクル設定の一例です。1 つのルールを指定します。ルール内の `Prefix` は、ルールが適用されるオブジェクトを特定します。このルールでは、2 つのアクション (`Transition` と `Expiration`) も指定します。各アクションは、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 個以上) を保持できます。次のライフサイクル設定では、現在のものではないオブジェクトバージョンに固有のアクション (`NoncurrentVersionTransition`、`NoncurrentVersionExpiration`) を指定します。

```
<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 ユーザーガイド*」の「[マルチパートアップロードの概要](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html)」を参照してください。ライフサイクル設定を使用すると、マルチパートアップロードが指定の日数以内に完了しなかった場合、不完全なマルチパートアップロード (ルールで指定されたキー名プレフィックスによって識別される) を停止するように 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  | 不完全なマルチパートアップロードが中止オペレーションの対象となるタイミングを指定するためのコンテナ。<br />子: `DaysAfterInitiation`<br />型: コンテナ<br />祖先: `Rule` | はい (ルールに他のアクションが指定されていない場合) | 
|  Date  | Amazon S3 がアクションを実行する日付。詳細については、「*Amazon Simple Storage Service ユーザーガイド*」中の「[ライフサイクルルール: 特定の日付に基づく](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html#intro-lifecycle-rules-date)」を参照してください。<br />日付の値は、ISO 8601 形式に従う必要があります。この時刻は常に午前 0 時 (UTC) となります。<br />タイプ: 文字列<br />祖先: `Expiration` または `Transition` | はい (Days と ExpiredObjectDeleteMarker がない場合) | 
|  Days  | オブジェクトの作成後、特定のルールアクションが有効になるまでの日数を指定します。<br />型: `Transition` で使用する場合は非負整数、`Expiration` で使用する場合は正整数<br />祖先: `Expiration`、`Transition` | はい (Date と ExpiredObjectDeleteMarker がない場合) | 
|  DaysAfterInitiation  | マルチパートアップロードを開始してから、そのマルチパートアップロードを完了する必要がある日数を指定します。指定した日数で完了しない場合、中止オペレーションの対象となり、Amazon S3 は不完全なマルチパートアップロードをキャンセルします。<br />型: 正の整数<br />祖先: `AbortIncompleteMultipartUpload` | はい (親タグが指定されている場合) | 
|  Expiration  | このアクションは、オブジェクトの有効期間内で、Amazon S3 が適切な失効アクションを実行する期間を指定します。Amazon S3 が実行するアクションは、バケットでバージョニングが有効になっているかどうかによって異なります。+  バケットでバージョニングが有効になっていない場合、Amazon S3 はオブジェクトの唯一のコピーを完全に削除します。 <br />+  バージョニングが有効になっているバケット (またはバージョニングが停止されている) の場合、 アクションは現在のバージョンのオブジェクトにのみ適用されます。バージョニングが有効なバケットは、同じオブジェクトの複数のバージョン (1 個の現行バージョンと 0 個以上の非現行バージョン) を持つことができます。 <br />Amazon S3 は、現在のバージョンを削除する代わりに、削除マーカーを新しい現在のバージョンとして追加することで、そのバージョンを非現行バージョンとします。 <br />  バケットがバージョニング停止状態にある場合、Amazon S3 はバージョン ID として `null` を使用する削除マーカーを作成します。バージョン ID が `null` のバージョンがある場合、Amazon S3 はそのバージョンを上書きします。   非現行オブジェクトの有効期限を設定するには、`NoncurrentVersionExpiration` アクションを使用します。  <br />型: コンテナ<br />子: Days または Date<br />祖先: Rule | はい (Rule に他のアクションが存在しない場合) | 
|  ID  | ルール用の一意の識別子。値は 255 文字以下にする必要があります。<br />タイプ: 文字列<br />祖先: Rule | いいえ | 
| LifecycleConfiguration | ライフサイクルルールのコンテナ。最大 1,000 個のルールを追加できます。<br />型: コンテナ<br />子: Rule<br />祖先: なし | はい | 
| ExpiredObjectDeleteMarker | バージョン管理されたバケット (バージョニングが有効なバケットまたはバージョニングが停止されたバケット) では、この要素をライフサイクル設定に追加して、期限切れのオブジェクト削除マーカーを削除するように Amazon S3 に指示できます。例については、「*Amazon Simple Storage Service ユーザーガイド*」の「[例 8: 期限切れオブジェクト削除マーカーの削除](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html#lifecycle-config-conceptual-ex8)」を参照してください。バージョン管理されていないバケットには追加しないでください。このタイプのバケットには削除マーカーを含めることができないためです。<br />タイプ: 文字列 <br />有効な値: true \| false (値 `false` は許可されますが、no-op です。つまり、Amazon S3 はアクションを実行しません)<br />祖先: `Expiration` | はい (Date と Days がない場合) | 
| NoncurrentDays | Amazon S3 で関連付けられたアクションが実行されるまでオブジェクトが最新でなくなってからの日数を指定します。非現行になってからの日数の計算の詳細については、「*Amazon Simple Storage Service ユーザーガイド*」の「[オブジェクトが最新でなくなってからの期間を Amazon S3 が計算する方法](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html)」を参照してください。<br />型: `NoncurrentVersionTransition` で使用する場合は非負整数、`NoncurrentVersionExpiration` で使用する場合は正整数<br />祖先: `NoncurrentVersionExpiration` または `NoncurrentVersionTransition` | はい | 
| NoncurrentVersionExpiration | 最新ではないオブジェクトのバージョンが期限切れになる時期を指定します。期限切れになると、Amazon S3 により、最新ではないオブジェクトのバージョンが完全に削除されます。<br />バージョニングが有効 (または停止) になっているバケットにこのライフサイクル設定アクションを構成し、オブジェクトのライフサイクル内の特定の期間に非現行オブジェクトのバージョンを削除するように Amazon S3 に指示します。<br />型: コンテナ<br />子: NoncurrentDays <br />祖先: Rule | はい (Rule に他のアクションが存在しない場合) | 
| NoncurrentVersionTransition | 非現行オブジェクトが、`STANDARD_IA`、`ONEZONE_IA`、または ストレージクラスに移行する時期を記述する移行ルールのコンテナ。<br />バケットでバージョニングが有効な場合 (またはバージョニングが停止している場合)、このアクションを設定して、オブジェクトの有効期間内の特定の期間にオブジェクトの非現行バージョンを移行するように Amazon S3 に指示できます。<br />型: コンテナ<br />子: NoncurrentDays と StorageClass<br />祖先: Rule | はい (Rule に他のアクションが存在しない場合) | 
|  Prefix  | ルールの適用対象となるオブジェクトを 1 つ以上特定するオブジェクトキープレフィックス。<br />タイプ: 文字列<br />祖先: Rule | はい | 
| Rule  | ライフサイクルルールのコンテナ。ライフサイクル設定には、最大 1,000 個のルールを含めることができます。<br />型: コンテナ<br />祖先: LifecycleConfiguration | はい | 
|  Status  | 有効にすると、Amazon S3 はスケジュールどおりにルールを実行します。無効にすると、Amazon S3 はルールを無視します。<br />タイプ: 文字列<br />祖先: Rule<br />有効な値: Enabled、Disabled | はい | 
|  StorageClass  | オブジェクトの移行先となる Amazon S3 ストレージクラスを指定します。<br />タイプ: 文字列<br />祖先: Transition と NoncurrentVersionTransition<br />有効な値: STANDARD\_IA \| ONEZONE\_IA \| GLACIER  | はい<br />この要素は、一方または両方の祖先を指定する場合にのみ必要です。 | 
|  Transition  | このアクションは、オブジェクトの有効期間内で Amazon S3 がオブジェクトを `STANDARD_IA`、`ONEZONE_IA`、またはストレージクラスに移行する期間を指定します。このアクションが有効な場合、Amazon S3 の動作は、バケットのバージョニングが有効になっているかどうかによって異なります。+  バケットでバージョニングが有効になっていない場合、Amazon S3 はオブジェクトの唯一のコピーを指定されたストレージクラスに移行します。 <br />+  バケットでバージョニングが有効になっている (またはバージョニングが停止されている) 場合、Amazon S3 はルールで識別されたオブジェクトの現在のバージョンのみを移行します。 <br />  バージョニングが有効なバケットでは、オブジェクトの複数のバージョンを保持できます。このアクションは、オブジェクトの非現行バージョンには影響しません。非現行オブジェクトを移行するには、`NoncurrentVersionTransition` アクションを使用する必要があります。  <br />型: コンテナ<br />子: Days または Date、および StorageClass<br />祖先: Rule | はい (Rule に他のアクションが存在しない場合) | 

## レスポンス
<a name="v1-rel-RESTBucketPUTlifecycle-responses"></a>

### レスポンスヘッダー
<a name="v1-rel-RESTBucketPUTlifecycle-responses-response-headers"></a>

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

### レスポンス要素
<a name="v1-rel-RESTBucketPUTlifecycle-responses-response-elements"></a>

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

### 特殊なエラー
<a name="v1-rel-RESTBucketPUTlifecycle-responses-special-errors"></a>

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

## 例
<a name="v1-rel-RESTBucketPUTlifecycle-examples"></a>

### 例 1: バージョニングが有効になっていないバケットにライフサイクル設定を追加する
<a name="v1-rel-put-bucket-lifecycle-ex1"></a>

以下のライフサイクル設定では、それぞれ 1 つのアクションを持つ 2 つのルールが指定されています。
+ Transition アクションは、作成から 30 日後に「documents/」プレフィックスを持つオブジェクトをストレージクラスに移行するように Amazon S3 に指示します。
+ Expiration アクションは、作成から 365 日後に「logs/」プレフィックスを持つオブジェクトを削除するように Amazon S3 に指示します。

```
 1. <LifecycleConfiguration>
 2.   <Rule>
 3.     <ID>id1</ID>
 4.     <Prefix>documents/</Prefix>
 5.     <Status>Enabled</Status>
 6.     <Transition>
 7.       <Days>30</Days>
 8.       <StorageClass>GLACIER</StorageClass>
 9.     </Transition>
10.   </Rule>
11.   <Rule>
12.     <ID>id2</ID>
13.     <Prefix>logs/</Prefix>
14.     <Status>Enabled</Status>
15.     <Expiration>
16.       <Days>365</Days>
17.     </Expiration>
18.   </Rule>
19. </LifecycleConfiguration>
```

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

```
 1. PUT /?lifecycle HTTP/1.1
 2. Host: examplebucket.s3.amazonaws.com 
 3. x-amz-date: Wed, 14 May 2014 02:11:21 GMT
 4. Content-MD5: q6yJDlIkcBaGGfb3QLY69A==
 5. Authorization: {{authorization string}}
 6. Content-Length: 415
 7. 
 8. <LifecycleConfiguration>
 9.   <Rule>
10.     <ID>id1</ID>
11.     <Prefix>documents/</Prefix>
12.     <Status>Enabled</Status>
13.     <Transition>
14.       <Days>30</Days>
15.       <StorageClass>GLACIER</StorageClass>
16.     </Transition>
17.   </Rule>
18.   <Rule>
19.     <ID>id2</ID>
20.     <Prefix>logs/</Prefix>
21.     <Status>Enabled</Status>
22.     <Expiration>
23.       <Days>365</Days>
24.     </Expiration>
25.   </Rule>
26. </LifecycleConfiguration>
```

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

 

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

### 例 2: バージョニングが有効になっているバケットにライフサイクル設定を追加する
<a name="v1-rel-put-bucket-lifecycle-ex2"></a>

以下のライフサイクル設定では、それぞれ Amazon S3 が実行するアクションを 1 つずつ含む 2 つのルールが指定されています。これらのアクションは、バケットのバージョニングが有効になっている場合、またはバージョニングが停止されている場合に指定します。
+ `NoncurrentVersionExpiration` アクションは、オブジェクトが非現行になってから 100 日後に、「logs/」プレフィックスが付いたオブジェクトの非現行バージョンを期限切れにするように Amazon S3 に指示します。
+ `NoncurrentVersionTransition` アクションは、オブジェクトが非現行になってから 30 日後に、「documents/」プレフィックスが付いたオブジェクトの非現行バージョンをストレージクラスに移行するように Amazon S3 に指示します。

```
 1. <LifeCycleConfiguration>
 2.   <Rule>
 3.     <ID>DeleteAfterBecomingNonCurrent</ID>
 4.     <Prefix>logs/</Prefix>
 5.     <Status>Enabled</Status>
 6.     <NoncurrentVersionExpiration>
 7.       <NoncurrentDays>100</NoncurrentDays>
 8.     </NoncurrentVersionExpiration>
 9.   </Rule>
10.   <Rule>
11.     <ID>TransitionAfterBecomingNonCurrent</ID>
12.     <Prefix>documents/</Prefix>
13.     <Status>Enabled</Status>
14.     <NoncurrentVersionTransition>
15.       <NoncurrentDays>30</NoncurrentDays>
16.       <StorageClass>GLACIER</StorageClass>
17.     </NoncurrentVersionTransition>
18.   </Rule>
19. </LifeCycleConfiguration>
```

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

```
 1. PUT /?lifecycle HTTP/1.1
 2. Host: examplebucket.s3.amazonaws.com 
 3. x-amz-date: Wed, 14 May 2014 02:21:48 GMT
 4. Content-MD5: 96rxH9mDqVNKkaZDddgnw==
 5. Authorization: {{authorization string}}
 6. Content-Length: 598
 7. 
 8. <LifeCycleConfiguration>
 9.   <Rule>
10.     <ID>DeleteAfterBecomingNonCurrent</ID>
11.     <Prefix>logs/</Prefix>
12.     <Status>Enabled</Status>
13.     <NoncurrentVersionExpiration>
14.       <NoncurrentDays>1</NoncurrentDays>
15.     </NoncurrentVersionExpiration>
16.   </Rule>
17.   <Rule>
18.     <ID>TransitionSoonAfterBecomingNonCurrent</ID>
19.     <Prefix>documents/</Prefix>
20.     <Status>Enabled</Status>
21.     <NoncurrentVersionTransition>
22.       <NoncurrentDays>0</NoncurrentDays>
23.       <StorageClass>GLACIER</StorageClass>
24.     </NoncurrentVersionTransition>
25.   </Rule>
26. </LifeCycleConfiguration>
```

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

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

### その他の例
<a name="v1-rel-put-bucket-lifecycle-ex3"></a>

STANDARD\_IA や ONEZONE\_IA などのストレージクラスにオブジェクトを移行するその他の例については、「[ライフサイクル設定の例](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html#lifecycle-configuration-examples)」を参照してください。

## 関連リソース
<a name="v1-rel-RESTObjectPOSTrestore-responses-related-resources"></a>
+ [GetBucketLifecycleConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html)
+ [POST Object restore](RESTObjectPOSTrestore.md)
+  デフォルトでは、リソース所有者 (この場合、バケットを作成した AWS アカウント であるバケット所有者) は、すべてのオペレーションを実行できます。リソース所有者は、オペレーションを実行するアクセス許可を他のユーザーに付与することもできます。詳細については、*Amazon Simple Storage Service コンソールユーザーガイド*の以下のトピックを参照してください。
  +  [ポリシーでのアクセス許可の指定](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html)
  + [Managing Access Permissions to Your Amazon S3 Resources (Amazon S3 リソースへのアクセス許可の管理](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html)