我在 Amazon Simple Storage Service (Amazon S3) 儲存貯體上設定了生命週期組態規則,將物件轉換為另一個儲存類別,或物件過期。不過,物件並未根據規則變更。
解決方法
當符合生命週期規則與完成規則動作之間出現延遲時,就會發生這種情況。符合生命週期規則時,即使動作尚未完成,也會套用計費變更。
範例:
- 如果您具有物件到期的生命週期規則,則到期後不會向您收取儲存體的費用。即使物件並非立即到期也適用。
- 物件轉換時間過後,將物件轉換為 GLACIER 儲存類別的生命週期規則會收取 Amazon S3 Glacier 儲存體費用。即使物件並非立即轉換為 GLACIER 儲存類別,也會發生這種情況。
**注意:**如果您將生命週期轉換設定為 INTELLIGENT_TIERING 儲存類別,則在物件轉換為 INTELLIGENT_TIERING 儲存類別前,不會變更計費。這是例外情況。
S3 生命週期每天只執行一次。此外,Amazon S3 ](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#intro-lifecycle-rules-number-of-days)會將物件的轉換或到期日期四捨五入[到翌日的午夜 UTC。例如,您可以在 UTC 2020 年 1 月 1 日 10 點 30 分建立具有生命週期規則的物件,以在 3 天後轉換該物件。針對該物件,轉換日期為 UTC 2020 年 1 月 5 日 0 點。檢查是否符合生命週期規則之前,請務必確認是否已經過足夠的時間。
如果已經過足夠的時間且不符合生命週期規則,則依據生命週期規則,檢查您是否正確設定物件的字首篩選條件。
重要事項:
- 如果您的生命週期規則未指定字首篩選條件,則該規則會套用到儲存貯體中的所有物件。
- 如果您將字首篩選條件指定為 images/,則生命週期規則會套用至字首 images/ 下的所有物件。
**注意:**請務必在字首篩選條件結尾處指定 / 字元。如果您在字首篩選條件的開頭指定 / 字元,則無法正確評估生命週期規則。
您可以使用 HeadObject API 或 Amazon S3 主控台,以檢查目前版本物件的排程到期時間。
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請確定您使用的是最新版本的 AWS CLI。
執行下列 AWS CLI 命令,以了解物件的到期時間:
$ aws s3api head-object --bucket bucketname --key 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": {}
}
到期回應標頭提供 expiry-date 和 rule-id。expiry-date 欄位顯示 Amazon S3 將物件排入佇列以進行移除並以非同步方式移除物件的日期。rule-id field 顯示套用至物件的生命週期規則。
要使用 Amazon S3 主控台來檢查物件的到期日期,請完成下列步驟:
- 開啟 Amazon S3 主控台。
- 從儲存貯體清單,選擇儲存貯體的名稱。
- 選擇您要檢查的物件名稱。
- 選擇屬性標籤。
- 在物件管理概觀區段的管理組態下,檢閱到期規則和到期日期欄位。
到期日期欄位顯示 Amazon S3 將物件排入佇列以進行移除並以非同步方式移除物件的日期。到期規則欄位顯示套用至物件的生命週期規則。
注意:僅目前版本物件會傳回 HEAD 或 GET 請求的到期回應標頭。之前版本和刪除標記不會傳回此回應標頭。此外,您不會收到符合轉換資格的物件回應標頭。
您可以使用 S3 Storage Lens 儀表板,監控作用中的生命週期規則進度以及生命週期規則進行的更新。
相關資訊
設定儲存貯體的生命週期組態