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

如果儲存貯體的狀態已啟用版本控制或暫停版本控制,您可以擁有相同物件的多個版本:一個目前版本和零個或多個非目前版本。下列生命週期組態會指定非目前物件版本特有的動作 (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 動作。此動作會通知 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

類型:容器

Ancestor: Rule

是,如果沒有為規則指定其他動作
Date

您希望 Amazon S3 採取動作的日期。如需詳細資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的生命週期規則:根據特定日期

日期值必須符合 ISO 8601 格式。時間一律是午夜 UTC。

類型:字串

Ancestor: ExpirationTransition

是,如果 DaysExpiredObjectDeleteMarker 不存在
Days

指定特定規則動作生效時,物件建立後的天數。

類型:與 搭配使用時的非負整數Transition,與 搭配使用時為正整數 Expiration

Ancestor:ExpirationTransition

是,如果 DateExpiredObjectDeleteMarker 不存在
DaysAfterInitiation

指定必須完成分段上傳時,啟動分段上傳後的天數。如果未在指定的天數之前完成,則會符合中止操作的資格,且 Amazon S3 會取消未完成的分段上傳。

類型:正整數

Ancestor: AbortIncompleteMultipartUpload

是,如果指定父標籤
Expiration

此動作會指定物件生命週期內 Amazon S3 應採取適當過期動作的期間。Amazon S3 採取的動作取決於儲存貯體是否已啟用版本控制。

  • 如果從未在儲存貯體上啟用版本控制,Amazon S3 會永久刪除物件的唯一副本。

  • 如果儲存貯體已啟用版本控制 (或版本控制已暫停),則動作僅適用於物件的目前版本。已啟用版本控制的儲存貯體可以有許多相同物件的版本:一個目前版本和零個或多個非目前版本。

    Amazon S3 不會刪除目前版本,而是新增刪除標記做為新的目前版本,使其成為非目前版本。

    重要

    如果儲存貯體的狀態已暫停版本控制,Amazon S3 會建立版本 ID 為 的刪除標記null。如果您有版本 ID 為 的版本null,Amazon S3 會覆寫該版本。

    注意

    若要設定非目前物件的過期時間,請使用 NoncurrentVersionExpiration動作。

類型:容器

子系:天或日期

Ancestor:規則

是,如果 中不存在其他動作Rule
ID

規則的唯一識別碼。該值不可超過 255 個字元。

類型:字串

Ancestor:規則

LifecycleConfiguration

生命週期規則的容器。最多可以新增 1000 個規則。

類型:容器

子系:規則

Ancestor:無

ExpiredObjectDeleteMarker

在版本控制儲存貯體 (已啟用版本控制或暫停版本控制儲存貯體) 上,您可以在生命週期組態中新增此元素,以指示 Amazon S3 刪除過期的物件刪除標記。如需範例,請參閱《Amazon Simple Storage Service 使用者指南》中的範例 8:移除過期的物件刪除標記。請勿將其新增至非版本控制的儲存貯體,因為該類型的儲存貯體不能包含刪除標記。

類型:字串

有效值:true | false (false允許該值,但非 op,這表示 Amazon S3 不會採取動作)

Ancestor: Expiration

是,如果 DateDays 不存在
NoncurrentDays

指定物件為非目前狀態的天數,在此之後,Amazon S3 才可以執行相關聯的動作。如需非目前天數計算的資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的 Amazon S3 如何計算物件何時成為非目前物件。

類型:與 搭配使用時的非負整數NoncurrentVersionTransition,與 搭配使用時為正整數 NoncurrentVersionExpiration

Ancestor: NoncurrentVersionExpirationNoncurrentVersionTransition

NoncurrentVersionExpiration

指定非目前物件版本的到期時間。過期時,Amazon S3 會永久刪除非目前的物件版本。

在已啟用 (或暫停) 版本控制的儲存貯體上設定此生命週期組態動作,以指示 Amazon S3 在物件生命週期內的特定期間內刪除非目前物件版本。

類型:容器

子系:NoncurrentDays

Ancestor:規則

是,如果 中不存在其他動作 Rule
NoncurrentVersionTransition

轉換規則的容器,描述非目前物件何時轉換至 STANDARD_IAONEZONE_IA或 儲存類別。

如果您的儲存貯體已啟用版本控制 (或暫停版本控制),您可以設定此動作,指示 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 應將物件轉換為 STANDARD_IAONEZONE_IA或 儲存體方案的期間。當此動作生效時,Amazon S3 執行的操作取決於儲存貯體是否已啟用版本控制。

  • 如果從未在儲存貯體上啟用版本控制,Amazon S3 會將物件的唯一複本轉換為指定的儲存類別。

  • 如果您的儲存貯體已啟用版本控制 (或版本控制已暫停),Amazon S3 只會轉換規則中識別的物件目前版本。

    注意

    已啟用版本控制的儲存貯體可以有多個物件版本。此動作不會影響非目前物件版本。若要轉換非目前物件,您必須使用 NoncurrentVersionTransition動作。

類型:容器

子系:天或日期,以及 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 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 執行。當您的儲存貯體已啟用版本控制或暫停版本控制時,您可以指定這些動作:

  • 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 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,請參閱生命週期組態範例