跳至內容

如何使用生命週期組態規則清空 S3 儲存貯體?

2 分的閱讀內容
0

我有儲存數百萬個物件的 Amazon Simple Storage Service (Amazon S3) 儲存貯體。我想使用生命週期組態規則清空儲存貯體,以避免支付儲存費用。

解決方法

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

**注意:**此生命週期組態指南僅適用於一般用途的 Amazon S3 儲存貯體。目錄型儲存貯體有不同的生命週期管理需求。資料表型儲存貯體不支援生命週期組態規則。

**重要:**下列解決方案會永久刪除 S3 儲存貯體中的所有資料。因為您無法復原資料,因此在刪除之前,請先檢閱儲存貯體中的所有物件和資料。

若要清空具有生命週期組態規則的儲存貯體,請使用主控台或 AWS CLI。

使用主控台

您可以在主控台中建立生命週期組態規則,讓目前版本的物件過期,並永久刪除舊版本物件。若要建立規則,請完成下列步驟:

  1. 開啟 Amazon S3 console (Amazon S3 主控台)。
  2. 從一般用途儲存貯體清單中,選取要清空的儲存貯體。
  3. 選擇 Management (管理) 索引標籤。
  4. 選擇建立生命週期規則
  5. 對於生命週期規則名稱,輸入規則名稱。
  6. 對於選擇規則範圍,選擇套用至儲存貯體中的所有物件
  7. 選取我確認此規則將套用至儲存貯體中的所有物件
  8. 對於 Lifecycle rule actions (生命週期規則動作),請選取下列選項:
    讓目前版本的物件過期
    永久刪除非目前版本的物件
    刪除過期物件刪除標記或未完成的分段上傳
  9. 讓目前版本的物件過期欄位,針對物件建立後的天數欄位輸入 1
  10. 永久刪除非目前版本的物件欄位,針對物件成為非目前版本後的天數欄位輸入 1
  11. 若要刪除所有版本,請將Number of newer versions to retain (Optional) (要保留的較新版本數量 (選用)) 欄位保留空白。
  12. 選取 Delete incomplete multipart uploads (刪除未完成的分段上傳),並在 Number of days (天數) 欄位輸入 1
  13. 選擇 Create rule (建立規則)。
  14. 若要建立第二個生命週期規則,請重複步驟 4-7。
  15. 選取 Delete expired object delete markers or incomplete multipart uploads (刪除過期物件刪除標記或未完成的分段上傳)。
  16. 選取 Delete expired object delete markers (刪除過期物件刪除標記)。
  17. 選擇 Create rule (建立規則)。

Amazon S3 每天執行一次生命週期組態規則。在 Amazon S3 首次執行規則後,它會將所有符合過期條件的物件標記為刪除。您不再需要為標記為刪除的物件付費。

Amazon S3 會以非同步方式使物件版本到期,並移除刪除標記。規則可能需要等清空儲存貯體幾天後才能執行。如需在 Amazon S3 移除非同步物件的詳細資訊,請參閱過期物件

使用 AWS CLI

您可以使用 AWS CLI 建立生命週期規則來清空您的 S3 儲存貯體。請完成下列步驟:

  1. 建立一個包含 JSON 內容的檔案,例如 lifecycle-rules.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"  
        }  
      ]  
    }
  2. 執行 put-bucket-lifecycle-configuration 命令來建立或更新您的生命週期組態。以下命令使用名為 lifecycle-rules.json 的 JSON 檔案:

    aws s3api put-bucket-lifecycle-configuration --bucket delete-marker-testing-demo --lifecycle-configuration file://lifecycle-rules.json

注意: 您可以為 JSON 內容新增首碼篩選器,以只在首碼層級套用規則。以下是範例命令:

"Filter": {  "Prefix": "folder1/"  
},

相關資訊

移除啟用版本控制的儲存貯體中的過期物件刪除標記

管理物件的生命週期

如何刪除 Amazon S3 物件和儲存貯體?

刪除一般用途儲存貯體

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

AWS 官方已更新 5 個月前