我有儲存數百萬個物件的 Amazon Simple Storage Service (Amazon S3) 儲存貯體。我想使用生命週期組態規則清空儲存貯體,以避免支付儲存費用。
解決方案
**重要:**下列解決方案會永久刪除 Amazon S3 儲存貯體中的所有資料。因為您無法復原資料,因此在刪除之前,請先檢閱儲存貯體中的所有物件和資料。
若要清空具有生活風格組態規則的儲存貯體,請使用主控台或 CLI。
使用主控台
您可以在主控台中建立生命週期組態規則,讓目前版本的物件過期,並永久刪除舊版本物件。若要建立規則,請完成下列步驟:
- 開啟 Amazon S3 主控台。
- 從儲存貯體清單,選擇您要清空的儲存貯體。
- 選擇管理索引標籤。
- 選擇建立生命週期規則。
- 對於生命週期規則名稱,輸入規則名稱。
- 對於選擇規則範圍,選擇套用至儲存貯體中的所有物件。
- 選取我確認此規則將套用至儲存貯體中的所有物件。
- 對於 Lifecycle rule actions (生命週期規則動作),請選取下列選項: 讓目前版本的物件過期 永久刪除物件的非目前版本 刪除過期的物件、刪除標記或不完整的分段上傳
- 在 Expire current versions of objects (讓目前版本的物件過期) 欄位,在 ays after object creation (物件建立後的天數) 欄位輸入 1。
- 在永久刪除非目前版本的物件欄位,針對物件成為非目前版本後的天數欄位輸入 1。
- 若要刪除所有版本,請將要保留的較新版本數量 (選用) 欄位保留空白。
- 選取刪除未完成的分段上傳,並在天數欄位輸入 1。
- 選擇建立規則。
- 若要建立第二個生命週期規則,請重複步驟 4-7。
- 選取下列選項: 刪除過期物件刪除標記或未完成的分段上傳。
- 選取刪除過期物件刪除標記。
- 選擇建立規則。
Amazon S3 每天會執行生命週期規則一次。Amazon S3 第一次執行規則後,符合過期資格的所有物件都會標記為刪除。您不需要再為標記為刪除的物件付費。
Amazon S3 非同步過期物件版本並移除刪除標記。規則可能需要等清空儲存貯體幾天後才能執行。如需在 Amazon S3 移除非同步物件的詳細資訊,請參閱過期物件。
使用 CLI
您可以使用 AWS Command Line Interface (AWS CLI) 建立生命週期規則以清空 S3 儲存貯體,步驟如下:
- 建立一個包含 JSON 內容的檔案 (例如 lifecycle-rules.json)。
JSON 範例:
{
"Rules": [{
"Expiration": {
"Days": 1
},
"ID": "FullDelete",
"Filter": {
"Prefix": ""
},
"Status": "Enabled",
"NoncurrentVersionExpiration": {
"NoncurrentDays": 1
},
"AbortIncompleteMultipartUpload": {
"DaysAfterInitiation": 1
}
},
{
"Expiration": {
"ExpiredObjectDeleteMarker": true
},
"ID": "DeleteMarkers",
"Filter": {
"Prefix": ""
},
"Status": "Enabled"
}
]
}
- 在 AWS CLI 命令中使用 JSON 檔案:
aws s3api put-bucket-lifecycle-configuration --bucket delete-marker-testing-demo --lifecycle-configuration file://lifecycle-rules.json
注意: 您可以新增前綴,以只在前綴層級套用規則,例如:
"Filter": {
"Prefix": "folder1/"
},
相關資訊
移除啟用版本控制的儲存貯體中的過期物件刪除標記
管理物件的生命週期
如何刪除 Amazon S3 物件和儲存貯體?
刪除儲存貯體
在儲存貯體上設定 S3 生命週期組態