設定儲存貯體生命週期組態,以刪除不完整的分段上傳 - Amazon Simple Storage Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定儲存貯體生命週期組態,以刪除不完整的分段上傳

最佳實務做法建議您使用 AbortIncompleteMultipartUpload 動作設定生命週期規則,從而將儲存體費用降至最低。如需中止分段上傳的詳細資訊,請參閱 中止分段上傳

Amazon S3 支援的儲存貯體生命週期規則,可用以指示 Amazon S3 在該過程啟動後指定的天數內,停止尚未完成的分段上傳。當分段上傳未在指定的時間範圍內完成時,其符合中止操作的資格。Amazon S3 接著中止分段上傳,並刪除與該分段上傳相關聯的部分。此規則適用於現有的分段上傳以及稍後建立的分段上傳。

下列生命週期組態範例指定了一項規則,其會採取 AbortIncompleteMultipartUpload 動作。

<LifecycleConfiguration> <Rule> <ID>sample-rule</ID> <Prefix></Prefix> <Status>Enabled</Status> <AbortIncompleteMultipartUpload> <DaysAfterInitiation>7</DaysAfterInitiation> </AbortIncompleteMultipartUpload> </Rule> </LifecycleConfiguration>

在此範例中,規則不會針對 Prefix 元素指定一值 (物件金鑰名稱字首)。因此,規則適用於您啟動分段上傳之儲存貯體中的所有物件。任何已啟動且未在七天內完成的分段上傳,都符合中止操作的資格。中止動作對已完成的分段上傳沒有影響。

如需儲存貯體生命週期組態的詳細資訊,請參閱「管理儲存生命週期」。

注意

若分段上傳在規則指定的天數內完成,就不會套用 AbortIncompleteMultipartUpload 生命週期動作 (也就是說,Amazon S3 不會採取任何動作)。此外,此動作不適用於物件。此生命週期動作不會刪除任何物件。此外,當您移除任何不完整分段上傳時,不會產生 S3 生命週期的提前刪除費用。

若要自動管理不完整的分段上傳,您可以使用 S3 主控台建立生命週期規則,以在指定天數後,使儲存貯體中未完成的分段上傳位元組過期。下列程序說明如何新增生命週期規則,以在 7 天後刪除未完成的分段上傳。如需新增生命週期規則的詳細資訊,請參閱 在值區上設定生命週期組態

新增生命週期規則以中止超過 7 天未完成的分段上傳
  1. 登入 AWS Management Console 並開啟 Amazon S3 主控台,網址為 https://console.aws.amazon.com/s3/

  2. Buckets (儲存貯體) 清單中,選擇要建立生命週期規則的儲存貯體名稱。

  3. 選擇 Management (管理) 標籤,然後選擇 Create lifecycle rule (建立生命週期規則)

  4. Lifecycle rule name (生命週期規則名稱) 中,輸入規則的名稱。

    在儲存貯體內,名稱必須是唯一的。

  5. 選擇生命週期規則的範圍:

    • 若要針對具有特定字首的所有物件建立生命週期規則,請選擇 Limit the scope of this rule using one or more filters (使用一或多個篩選條件限制此規則的範圍),然後在 Prefix (字首) 欄位中輸入字首。

    • 若要針對儲存貯體中的所有物件建立生命週期規則,請選擇 This rule applies to all objects in the bucket (此規則適用於儲存貯體中的所有物件),然後選擇 I acknowledge that this rule applies to all objects in the bucket (我確認此規則適用於儲存貯體中的所有物件)。

  6. Lifecycle rule actions (生命週期規則動作) 下,選取 Delete expired object delete markers or incomplete multipart uploads (刪除過期物件標記或未完成的分段上傳)。

  7. Delete expired delete markers or incomplete multipart uploads (刪除過期刪除標記或未完成的分段上傳) 下,選擇 Delete incomplete multipart uploads (刪除未完成的分段上傳)。

  8. Number of days (天數) 欄位中,輸入要刪除幾天後未完成的分段上傳 (在此範例中,7 天)。

  9. 選擇建立規則

以下 put-bucket-lifecycle-configurationAWS Command Line Interface (AWS CLI) 命令會為指定值區新增生命週期組態。若要使用此命令,請以您的資訊取代 user input placeholders

aws s3api put-bucket-lifecycle-configuration  \ --bucket DOC-EXAMPLE-BUCKET1  \ --lifecycle-configuration filename-containing-lifecycle-configuration

下列範例說明如何新增生命週期規則,以使用 AWS CLI中止未完成的分段上傳。其中包含範例 JSON 生命週期組態,以中止超過 7 天未完成的分段上傳。

若要在此範例中使用 CLI 命令,請以您的資訊取代 user input placeholders

新增生命週期規則以中止未完成的分段上傳
  1. 設定 AWS CLI. 如需說明,請參閱使用 AWS CLI 來透過 Amazon S3 進行開發

  2. 將以下範例生命週期組態儲存至檔案 (例如,lifecycle.json)。此範例組態指定了空的字首,因此其會套用至該儲存貯體中的所有物件。若要將組態限制為物件子集,您可以指定字首。

    { "Rules": [ { "ID": "Test Rule", "Status": "Enabled", "Filter": { "Prefix": "" }, "AbortIncompleteMultipartUpload": { "DaysAfterInitiation": 7 } } ] }
  3. 執行下列 CLI 命令,以在您的儲存貯體上設定此生命週期組態。

    aws s3api put-bucket-lifecycle-configuration   \ --bucket DOC-EXAMPLE-BUCKET1  \ --lifecycle-configuration file://lifecycle.json
  4. 若要驗證是否已在您的儲存貯體上設定生命週期組態,請使用下列 get-bucket-lifecycle 命令擷取生命週期組態。

    aws s3api get-bucket-lifecycle  \ --bucket DOC-EXAMPLE-BUCKET1
  5. 若要刪除生命週期組態,請如下使用 delete-bucket-lifecycle 命令。

    aws s3api delete-bucket-lifecycle \ --bucket DOC-EXAMPLE-BUCKET1