

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 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。以下是基本生命週期組態的範例。它會指定一個規則。規則`Prefix`中的 會識別套用規則的物件。此規則也會指定兩個動作 (`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>
```

如果儲存貯體的狀態已啟用版本控制或暫停版本控制，您可以擁有相同物件的多個版本：一個目前版本和零個或多個非目前版本。下列生命週期組態會指定非目前物件版本特有的動作 (`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` 動作。此動作會通知 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 />Ancestor： `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 格式。時間一律是午夜 UTC。<br />類型：字串<br />Ancestor： `Expiration`或 `Transition` | 是，如果 Days和 ExpiredObjectDeleteMarker 不存在 | 
|  Days  | 指定特定規則動作生效時，物件建立後的天數。<br />類型：與 搭配使用時的非負整數`Transition`，與 搭配使用時為正整數 `Expiration`<br />Ancestor：`Expiration`、 `Transition` | 是，如果 Date和 ExpiredObjectDeleteMarker 不存在 | 
|  DaysAfterInitiation  | 指定必須完成分段上傳時，啟動分段上傳後的天數。如果未在指定的天數之前完成，則會符合中止操作的資格，且 Amazon S3 會取消未完成的分段上傳。<br />類型：正整數<br />Ancestor： `AbortIncompleteMultipartUpload` | 是，如果指定父標籤 | 
|  Expiration  | 此動作會指定物件生命週期內 Amazon S3 應採取適當過期動作的期間。Amazon S3 採取的動作取決於儲存貯體是否已啟用版本控制。+  如果從未在儲存貯體上啟用版本控制，Amazon S3 會永久刪除物件的唯一副本。 <br />+  如果儲存貯體已啟用版本控制 （或版本控制已暫停），則動作僅適用於物件的目前版本。已啟用版本控制的儲存貯體可以有許多相同物件的版本：一個目前版本和零個或多個非目前版本。 <br />Amazon S3 不會刪除目前版本，而是新增刪除標記做為新的目前版本，使其成為非目前版本。 <br />  如果儲存貯體的狀態已暫停版本控制，Amazon S3 會建立版本 ID 為 的刪除標記`null`。如果您有版本 ID 為 的版本`null`，Amazon S3 會覆寫該版本。   若要設定非目前物件的過期時間，請使用 `NoncurrentVersionExpiration`動作。  <br />類型：容器<br />子系：天或日期<br />Ancestor：規則 | 是，如果 中不存在其他動作Rule。 | 
|  ID  | 規則的唯一識別碼。該值不可超過 255 個字元。<br />類型：字串<br />Ancestor：規則 | 否 | 
| LifecycleConfiguration | 生命週期規則的容器。最多可以新增 1000 個規則。<br />類型：容器<br />子系：規則<br />Ancestor：無 | 是 | 
| 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`允許該值，但非 op，這表示 Amazon S3 不會採取動作）<br />Ancestor： `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 />Ancestor： `NoncurrentVersionExpiration`或 `NoncurrentVersionTransition` | 是 | 
| NoncurrentVersionExpiration | 指定非目前物件版本的到期時間。過期時，Amazon S3 會永久刪除非目前的物件版本。<br />在已啟用 （或暫停） 版本控制的儲存貯體上設定此生命週期組態動作，以指示 Amazon S3 在物件生命週期內的特定期間內刪除非目前物件版本。<br />類型：容器<br />子系：NoncurrentDays <br />Ancestor：規則 | 是，如果 中不存在其他動作 Rule | 
| NoncurrentVersionTransition | 轉換規則的容器，描述非目前物件何時轉換至 `STANDARD_IA`、 `ONEZONE_IA`或 儲存類別。<br />如果您的儲存貯體已啟用版本控制 （或暫停版本控制），您可以設定此動作，指示 Amazon S3 在物件生命週期的特定期間轉換非目前物件版本。<br />類型：容器<br />子系：NoncurrentDays 和 StorageClass<br />Ancestor：規則 | 是，如果 中不存在其他動作 Rule | 
|  Prefix  | 物件金鑰字首，可識別套用規則的一或多個物件。<br />類型：字串<br />Ancestor：規則 | 是 | 
| Rule  | 生命週期規則的容器。生命週期組態最多可包含 1000 個規則。<br />類型：容器<br />Ancestor：LifecycleConfiguration | 是 | 
|  Status  | 如果啟用，Amazon S3 會依排程執行規則。如果停用，Amazon S3 會忽略規則。<br />類型：字串<br />Ancestor：規則<br />有效值：已啟用、已停用 | 是 | 
|  StorageClass  | 指定您希望物件轉換的 Amazon S3 儲存體方案。<br />類型：字串<br />Ancestor：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 />子系：天或日期，以及 StorageClass<br />Ancestor：規則 | 是，如果 中不存在其他動作 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>

下列生命週期組態會指定兩個規則，每個規則都有一個動作。
+ 轉換動作會指示 Amazon S3 在建立物件的 30 天後，將具有「文件/」字首的物件轉換為儲存類別。
+ 過期動作會指示 Amazon S3 在建立後 365 天刪除字首為「logs/」的物件。

```
 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 執行。當您的儲存貯體已啟用版本控制或暫停版本控制時，您可以指定這些動作：
+ `NoncurrentVersionExpiration` 動作會指示 Amazon S3 在物件變成非最新版本的 100 天後，將具有「logs/」字首的物件版本過期。
+ `NoncurrentVersionTransition` 動作會通知 Amazon S3 在物件變成非最新版本的 30 天後，將具有「文件/」字首的物件轉換為儲存類別。

```
 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 物件還原](RESTObjectPOSTrestore.md)
+  根據預設，資源擁有者 - 在這種情況下，建立儲存貯體 AWS 帳戶 的 儲存貯體擁有者 - 可以執行任何操作。資源擁有者也可以授予其他人執行操作的許可。如需詳細資訊，請參閱《*Amazon Simple Storage Service 使用者指南*》中的下列主題：
  +  [在政策中指定許可](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html)
  + [管理對您 Amazon S3 資源的存取許可](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html)