本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
PUT 儲存貯體生命週期 (已棄用)
說明
重要
如需此 API 的更新版本,請參閱 PutBucketLifecycleConfiguration。此版本已棄用。現有的生命週期組態將會運作。對於新的生命週期組態,請使用更新的 API。
為儲存貯體建立新的生命週期組態,或取代現有的生命週期組態。如需生命週期組態的相關資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的物件生命週期管理。
許可
根據預設,所有 Amazon S3 資源,包括儲存貯體、物件和相關子資源 (例如生命週期組態和網站組態) 都是私有的。只有 AWS 帳戶 建立資源的 資源擁有者 可以存取它。 資源擁有者可以透過撰寫存取政策,選擇性地將存取許可授予其他人。對於此操作,使用者必須取得 s3:PutLifecycleConfiguration許可。
您也可以明確拒絕許可。明確拒絕也會取代任何其他許可。如果您想要防止使用者或帳戶從儲存貯體中移除或刪除物件,您必須拒絕他們執行下列動作的許可:
s3:DeleteObjects3:DeleteObjectVersions3:PutLifecycleConfiguration
如需許可的詳細資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的管理 Amazon S3 資源的存取許可。
要求
語法
PUT /?lifecycle HTTP/1.1 Host:bucketname.s3.amazonaws.com Content-Length:lengthDate:dateAuthorization:authorization stringContent-MD5:MD5Lifecycle configuration in the request body
如需授權字串的詳細資訊,請參閱 驗證請求AWS (簽章第 4 版)。
請求參數
此實作操作不使用請求參數。
請求標頭
| 名稱 | 描述 | 必要 |
|---|---|---|
Content-MD5 |
資料的 base64 編碼 128 位元 MD5 摘要。您必須使用此標頭做為訊息完整性檢查,以確認請求內文未在傳輸中損毀。如需詳細資訊,請參閱 RFC 1864 類型:字串 預設:無 |
是 |
請求主體
在請求中,您可以在請求內文中指定生命週期組態。生命週期組態指定為 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 使用者指南》中的分段上傳概觀。透過生命週期組態,您可以指示 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
|
用於指定未完成分段上傳何時符合中止操作資格的容器。 子系: 類型:容器 Ancestor: |
是,如果沒有為規則指定其他動作 |
Date
|
您希望 Amazon S3 採取動作的日期。如需詳細資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的生命週期規則:根據特定日期。 日期值必須符合 ISO 8601 格式。時間一律是午夜 UTC。 類型:字串 Ancestor: |
是,如果 Days和 ExpiredObjectDeleteMarker 不存在 |
Days
|
指定特定規則動作生效時,物件建立後的天數。 類型:與 搭配使用時的非負整數 Ancestor: |
是,如果 Date和 ExpiredObjectDeleteMarker 不存在 |
DaysAfterInitiation
|
指定必須完成分段上傳時,啟動分段上傳後的天數。如果未在指定的天數之前完成,則會符合中止操作的資格,且 Amazon S3 會取消未完成的分段上傳。 類型:正整數 Ancestor: |
是,如果指定父標籤 |
Expiration
|
此動作會指定物件生命週期內 Amazon S3 應採取適當過期動作的期間。Amazon S3 採取的動作取決於儲存貯體是否已啟用版本控制。
類型:容器 子系:天或日期 Ancestor:規則 |
是,如果 中不存在其他動作Rule。 |
ID
|
規則的唯一識別碼。該值不可超過 255 個字元。 類型:字串 Ancestor:規則 |
否 |
LifecycleConfiguration |
生命週期規則的容器。最多可以新增 1000 個規則。 類型:容器 子系:規則 Ancestor:無 |
是 |
ExpiredObjectDeleteMarker |
在版本控制儲存貯體 (已啟用版本控制或暫停版本控制儲存貯體) 上,您可以在生命週期組態中新增此元素,以指示 Amazon S3 刪除過期的物件刪除標記。如需範例,請參閱《Amazon Simple Storage Service 使用者指南》中的範例 8:移除過期的物件刪除標記。請勿將其新增至非版本控制的儲存貯體,因為該類型的儲存貯體不能包含刪除標記。 類型:字串 有效值:true | false ( Ancestor: |
是,如果 Date和 Days 不存在 |
NoncurrentDays |
指定物件為非目前狀態的天數,在此之後,Amazon S3 才可以執行相關聯的動作。如需非目前天數計算的資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的 Amazon S3 如何計算物件何時成為非目前物件。 類型:與 搭配使用時的非負整數 Ancestor: |
是 |
NoncurrentVersionExpiration |
指定非目前物件版本的到期時間。過期時,Amazon S3 會永久刪除非目前的物件版本。 在已啟用 (或暫停) 版本控制的儲存貯體上設定此生命週期組態動作,以指示 Amazon S3 在物件生命週期內的特定期間內刪除非目前物件版本。 類型:容器 子系:NoncurrentDays Ancestor:規則 |
是,如果 中不存在其他動作 Rule |
NoncurrentVersionTransition |
轉換規則的容器,描述非目前物件何時轉換至 如果您的儲存貯體已啟用版本控制 (或暫停版本控制),您可以設定此動作,指示 Amazon S3 在物件生命週期的特定期間轉換非目前物件版本。 類型:容器 子系:NoncurrentDays 和 StorageClass Ancestor:規則 |
是,如果 中不存在其他動作 Rule |
Prefix
|
物件金鑰字首,可識別套用規則的一或多個物件。 類型:字串 Ancestor:規則 |
是 |
Rule
|
生命週期規則的容器。生命週期組態最多可包含 1000 個規則。 類型:容器 Ancestor:LifecycleConfiguration |
是 |
Status
|
如果啟用,Amazon S3 會依排程執行規則。如果停用,Amazon S3 會忽略規則。 類型:字串 Ancestor:規則 有效值:已啟用、已停用 |
是 |
StorageClass
|
指定您希望物件轉換的 Amazon S3 儲存體方案。 類型:字串 Ancestor:Transition NoncurrentVersionTransition 有效值:STANDARD_IA | ONEZONE_IA | GLACIER |
是 只有在您指定一個或兩個前代時,才需要此元素。 |
Transition
|
此動作會指定物件生命週期內 Amazon S3 應將物件轉換為
類型:容器 子系:天或日期,以及 StorageClass Ancestor:規則 |
是,如果 中不存在其他動作 Rule |
回應
回應標頭
此操作的實作只會使用大多數回應通用的回應標頭。如需詳細資訊,請參閱常見回應標頭。
回應元素
此操作的實作不會傳回回應元素。
特殊錯誤
此操作的實作不會傳回特殊錯誤。如需 Amazon S3 錯誤和錯誤代碼清單的一般資訊,請參閱錯誤回應。
範例
範例 1:將生命週期組態新增至未啟用版本控制的儲存貯體
下列生命週期組態會指定兩個規則,每個規則都有一個動作。
-
轉換動作會指示 Amazon S3 在建立物件的 30 天後,將具有「文件/」字首的物件轉換為儲存類別。
-
過期動作會指示 Amazon S3 在建立後 365 天刪除字首為「logs/」的物件。
<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 stringContent-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 執行。當您的儲存貯體已啟用版本控制或暫停版本控制時,您可以指定這些動作:
-
NoncurrentVersionExpiration動作會指示 Amazon S3 在物件變成非最新版本的 100 天後,將具有「logs/」字首的物件版本過期。 -
NoncurrentVersionTransition動作會通知 Amazon S3 在物件變成非最新版本的 30 天後,將具有「文件/」字首的物件轉換為儲存類別。
<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 stringContent-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,請參閱生命週期組態範例。
相關資源
-
根據預設,資源擁有者 - 在這種情況下,建立儲存貯體 AWS 帳戶 的 儲存貯體擁有者 - 可以執行任何操作。資源擁有者也可以授予其他人執行操作的許可。如需詳細資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的下列主題: