跳至內容

為什麼即使我在一天多以前套用了生命週期規則,我的 Amazon S3 儲存貯體上的生命週期規則仍然無法運作?

2 分的閱讀內容
0

我在 Amazon Simple Storage Service (Amazon S3) 儲存貯體上設定了生命週期組態規則。它會將物件轉移到另一個儲存類別,或使物件過期或刪除物件。不過,物件並未根據規則變更。我需要確認該規則是否能夠管理成本或確保合規性。

簡短描述

Amazon S3 生命週期動作是非同步的。非同步動作可能會將物件的移除延遲到生命週期組態規則中的到期或轉換日期之後。不過,在您符合生命週期規則的條件後,即使動作尚未完成,AWS 也會變更計費。

Amazon S3 生命週期規則每天只執行一次。此外,Amazon S3 會將物件的轉換或到期日期四捨五入到隔天的午夜 UTC。檢查生命週期規則是否完成之前,請確認已經過足夠時間。如果已經過足夠時間,而您的生命週期規則尚未完成,請檢查您是否已為生命週期規則上的物件正確設定前綴篩選條件。

前綴篩選條件會決定生命週期規則影響的物件。例如,如果您將前綴篩選條件指定為 images/,則生命週期規則只會套用至 images/ 前綴下的物件。

**注意:**請務必在前綴篩選條件的結尾指定 / 字元。如果您在前綴篩選條件的開頭指定 / 字元,Amazon S3 就無法正確評估生命週期規則。

解決方法

**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本

您可以使用 HeadObject API、AWS Command Line Interface (AWS CLI) 或 Amazon S3 主控台,了解物件的目前版本何時到期。

注意: 標頭僅適用於目前物件版本,不適用於非目前物件或刪除標記。如果您請求或顯示版本,Amazon S3 不會傳回 headobject 回應。當您使用 AWS CLI 或 AWS API 傳送 headobject 請求時,請勿在請求中包含 VersionID。當您使用主控台時,請勿開啟 Show versions (顯示版本)。

注意: 沒有特定的回應標頭可檢查符合轉換資格物件的轉換日期。

使用 AWS CLI

執行以下 AWS CLI head-object 命令,了解物件何時到期:

aws s3api head-object --bucket bucketname --key file.txt

注意: 將 bucketname 替換為您的儲存貯體名稱,並將 file.txt 替換為您的索引鍵值。

範例輸出:

 {     
 "AcceptRanges": "bytes",    
 "Expiration": "expiry-date=\"Wed, 15 Mar 2023 00:00:00 GMT\", rule-id=\"MyExpirationRule\"",    
 "LastModified": "2023-02-22T17:20:34+00:00",    
 "ContentLength": 6,    
 "ETag": "\"edae42exa0d2b93b123346740107dacf\"",    
 "VersionId": "SoshCRUrlabc1v4ZzYEA123PvWcaeF6F",    
 "ContentType": "text/plain",    
 "ServerSideEncryption": "AES256",    
 "Metadata": {}    
}

Expiration 回應標頭提供 expiry-daterule-idexpiry-date 欄位會顯示 Amazon S3 將物件排入移除佇列,並以非同步方式移除物件的日期。rule-id 欄位會顯示您套用至物件的生命週期規則。

使用 Amazon S3 主控台

請完成以下步驟:

  1. 開啟 Amazon S3 console (Amazon S3 主控台)。
  2. Buckets (儲存貯體) 清單上,選取您的儲存貯體名稱。
  3. 選取您要檢查的物件名稱。
  4. 選擇 Properties (屬性) 索引標籤。
  5. Object Management Overview (物件管理概觀) 區段的 Management Configurations (管理組態) 下,檢閱 Expiration rule (到期規則) 和 Expiration date (到期日期) 欄位。

Expiration date (到期日期) 欄位會顯示 Amazon S3 將物件排入移除佇列,並以非同步方式移除物件的日期。Expiration rule (到期規則) 欄位會顯示您套用至物件的生命週期規則。

**注意:**只有目前版本物件會針對 HEADGET 請求傳回 Expires 回應標頭。先前版本和刪除標記不會傳回回應標頭。此外,沒有特定的回應標頭可檢查符合轉換資格物件的轉換日期。

相關資訊

在儲存貯體上設定 S3 生命週期組態

如何監控生命週期規則所採取的動作?

AWS 官方已更新 7 個月前