本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
疑難排解 Amazon S3 生命週期問
以下資訊有助於針對 Amazon S3 生命週期規則的常見問題進行疑難排解。
主題
我在儲存貯體上執行了清單操作,並看到以為已逾期或由生命週期規則轉換的物件。
S3 生命週期物件轉換和物件逾期為非同步操作。因此,在物件符合過期或轉移資格的時間與其實際轉換或過期的時間之間,可能會有延遲。只要滿足生命週期規則,就會套用計費,即使動作尚未完成也是一樣。此行為的例外狀況為,如果您擁有轉換至 S3 Intelligent-Tiering 儲存類別的生命週期規則集。在此情況下,直到物件轉換至 S3 Intelligent-Tiering 儲存類別後,才會發生計費變更。如需計費中變更的詳細資訊,請參閱在儲存貯體上設定生命週期組態。
注意
Amazon S3 不會將小於 128 KB 的物件從「S3 標準」或「S3 標準 - IA」儲存體類別轉換為「S3 智慧型分層」、「S3 標準 - IA」或「S3 單區域 - IA」儲存體類別。
如何監視生命週期規則所採取的動作?
欲監視生命週期規則所採取的動作,您可以使用下列功能:
若要每天檢視由生命週期動作造成的儲存變更,建議您使用 S3 儲存鏡頭儀表板,而不要使用 Amazon CloudWatch 指標。在 Storage Lens 儀表板中,您可以檢視下列監控物件計數或大小的指標:
-
目前版本位元組
-
目前版本物件計數
-
非目前版本位元組
-
非目前版本物件計數
-
刪除標記物件計數
-
刪除標記儲存體位元組
-
未完成分段上傳位元組
-
未完成分段上傳物件計數
即使在啟用版本控制的儲存貯體上設定生命週期規則,我的 S3 物件計數仍會增加。
在啟用版本控制的值區中,當物件到期時,物件不會從值區中完全刪除。相反地,建立刪除標記作為物件的最新版本。刪除標記仍會計為物件。因此,如果建立生命週期規則,僅使目前版本過期,則 S3 儲存貯體中的物件計數實際上會增加,而不是下降。
例如,假設 S3 儲存貯體已啟用 100 個物件的版本控制,而生命週期規則設定為使物件的目前版本在 7 天後過期。第七天之後,物件計數會增加到 200,因為除了 100 個原始物件 (現在為非目前版本) 之外,還建立了 100 個刪除標記。如需啟用版本控制的儲存貯體之「S3 生命週期」組態規則動作的詳細資訊,請參閱在儲存貯體上設定生命週期組態。
若要永久移除物件,請新增其他生命週期組態,以刪除先前版本的物件、過期的刪除標記,以及未完成的分段上傳。如需如何建立新生命週期規則的指示,請參閱在儲存貯體上設定生命週期組態。
注意
-
Amazon S3 會將物件的轉換或到期日四捨五入到第二天UTC的午夜。
評估物件的生命週期動作時,Amazon S3 會使用中的物件建立時間UTC。例如,假設一個具有生命週期規則的非版本化值區,該規則設定為在一天後到期物件。假設物件是在 1 月 1 日 17:05 太平洋夏令時間 (PDT) 建立的,這對應於 1 月 2 日 00:05。UTC物件在 1 月 3 日 00:05 變成一天UTC的舊時間,因此當 S3 生命週期在 1 月 4 日 00:00 評估物件時符合到期UTC的資格。
由於 Amazon S3 生命週期動作是非同步發生的,因此在生命週期規則中指定的日期和物件的實際實際轉換之間可能會有些許延遲。如需詳細資訊,請參閱轉換或到期延遲。
如需詳細資訊,請參閱生命週期規則:依據物件的存在時間。
-
對於受「物件鎖定」保護的 S3 物件,不會永久刪除目前的版本。相反地,會將刪除標記新增至物件,使其成為非目前版本。然後會保留非目前版本,且永久不會過期。
如何使用生命週期規則清空 S3 儲存貯體?
S3 生命週期規則是清空 S3 儲存貯體與其數百萬個物件的有效工具。若要從 S3 儲存貯體刪除大量物件,請務必使用下列兩對生命週期規則:
-
使物件的目前版本到期和永久刪除物件的先前版本
-
刪除過期的刪除標記和刪除未完成的分段上傳
如需如何建立生命週期組態規則的步驟,請參閱在儲存貯體上設定生命週期組態。
注意
對於受「物件鎖定」保護的 S3 物件,不會永久刪除目前的版本。相反地,會將刪除標記新增至物件,使其成為非目前版本。然後會保留非目前版本,且永久不會過期。
將物件轉換為成本較低的儲存體類別之後,我的 Amazon S3 計費增加了。
有數個原因,在將物件轉換為成本較低的儲存體類別之後,您的帳單可能會增加:
-
小型物件的 S3 Glacier 額外費用
對於轉換為 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 的每個物件,總共有額外的 40 KB 與此儲存體更新相關聯。作為額外 40 KB 的一部分,8 KB 用來存放中繼資料和物件的名稱。此 8 KB 是根據「S3 標準」費率收費。剩餘的 32 KB 用於索引編製和相關中繼資料。此 32 KB 是根據 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 定價收費。
因此,如果您要儲存許多小型物件,我們不建議使用生命週期轉換。相反地,若要降低任何額外費用,請將多個小型物件彙總為少量的大型物件,然後再將它們存放在 Amazon S3 中。如需成本考量的詳細資訊,請參閱轉換為 S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 儲存體類別 (物件封存)。
-
最低儲存費用
某些 S3 儲存體類別有最短儲存持續時間需求。在滿足最短持續時間之前,從這些類別中刪除、覆寫或轉換的物件,會被收取按比例分配的提前轉換或刪除費用。這些最短儲存持續時間需求如下:
-
S3 標準 - IA 和 S3 單區域 - IA - 30 天
-
S3 Glacier Flexible Retrieval 和 S3 Glacier Instant Retrieval - 90 天
-
S3 Glacier Deep Archive - 180 天
如需這些需求的詳細資訊,請參閱使用 S3 生命週期轉移物件的限制一節。如需一般 S3 定價資訊,請參閱 Amazon S3 定價
和 AWS 定價計算器 。 -
-
生命週期轉換成本
每次透過生命週期規則將物件轉換為不同的儲存體類別時,Amazon S3 就會將該轉換計為一個轉換請求。這些轉換請求的成本不包括在這些儲存體類別的成本。如果打算轉換大量物件,建議在轉換為較低成本方案時將請求成本納入考慮。如需詳細資訊,請參閱 Simple Storage Service (Amazon S3) 定價
。
我已更新儲存貯體政策,但我的 S3 物件仍被過期的生命週期規則刪除。
儲存貯體政策中的 Deny
陳述式不會防止生命週期規則中定義的物件過期。生命週期動作 (例如轉換或過期) 不會使用 S3 DeleteObject
操作。相反地,使用內部 S3 端點來執行「S3 生命週期」動作。(如需詳細資訊,請參閱生命週期和記錄。)
若要防止生命週期規則採取任何動作,您必須編輯、刪除或停用規則。
是否可以復原「S3 生命週期」規則使其過期的 S3 物件?
若要復原由「S3 生命週期」使其過期的物件,唯一方法就是透過版本控制,而在物件符合過期資格之前,版本控制必須已就位。您無法復原生命週期規則所執行的過期操作。如果物件是由既定的「S3 生命週期」規則永久刪除,則無法復原這些物件。若要在儲存貯體上啟用版本控制,請參閱 使用 S3 版本控制保留多個版本的物件。
如果您已將版本控制套用至儲存貯體,且物件的非目前版本仍保持完整不變,則可以還原過期物件的先前版本。如需「S3 生命週期」規則動作之行為和版本控制狀態的詳細資訊,請參閱描述生命週期動作的元素中的生命週期動作和儲存貯體版本控制狀態表格。
注意
如果 S3 儲存貯體受到保護 AWS Backup 或 S3 複寫,您也可以使用這些功能來復原過期的物件。
如何從生命週期規則中排除前綴?
S3 生命週期不支援在規則中排除前置詞。而是使用標籤來標記要包括在規則中的所有物件。如需在生命週期規則中使用標籤的更多資訊,請參閱〈〉建立後一天內封存所有物件。
如何在生命週期規則中包含多個前綴?
S3 生命週期不支援在規則中包含多個前置詞。而是使用標籤來標記要包括在規則中的所有物件。如需在生命週期規則中使用標籤的更多資訊,請參閱〈〉建立後一天內封存所有物件。
不過,如果您有一或多個以相同字元開頭的前置字元,您可以在篩選條件中指定部分字首 (不含尾隨斜線 (/
),將所有這些前置字元納入規則中。例如,假設您有這些前置詞:
sales1999/ sales2000/ sales2001/
若要在規則中包含所有三個前置字元,請<Prefix>sales</Prefix>
在生命週期規則中指定。