

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

# 設定儲存貯體生命週期組態，以刪除不完整的分段上傳
<a name="mpu-abort-incomplete-mpu-lifecycle-config"></a>

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

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` 元素指定一值 ([物件金鑰名稱字首](https://docs.aws.amazon.com/general/latest/gr/glos-chap.html#keyprefix))。因此，規則適用於您啟動分段上傳之儲存貯體中的所有物件。任何已啟動且未在七天內完成的分段上傳，都符合中止操作的資格。中止動作對已完成的分段上傳沒有影響。

如需儲存貯體生命週期組態的詳細資訊，請參閱「[管理物件的生命週期](object-lifecycle-mgmt.md)」。

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

## 使用 S3 主控台
<a name="mpu-abort-incomplete-mpu-lifecycle-config-console"></a>

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

**新增生命週期規則以中止超過 7 天未完成的分段上傳**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 的 Amazon S3 主控台。

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

1. 選擇 **Management (管理)** 標籤，然後選擇 **Create lifecycle rule (建立生命週期規則)**。

1. 在 **Lifecycle rule name (生命週期規則名稱)** 中，輸入規則的名稱。

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

1. 選擇生命週期規則的範圍：
   + 若要針對具有特定字首的所有物件建立生命週期規則，請選擇 **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** (我確認此規則適用於儲存貯體中的所有物件)。

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

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

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

1. 選擇**建立規則**。

## 使用 AWS CLI
<a name="mpu-abort-incomplete-mpu-lifecycle-config-cli"></a>

下列`put-bucket-lifecycle-configuration` AWS Command Line Interface (AWS CLI) 命令會新增指定儲存貯體的生命週期組態。若要使用此命令，請以您的資訊取代 `user input placeholders`。

```
aws s3api put-bucket-lifecycle-configuration  \
        --bucket amzn-s3-demo-bucket  \
        --lifecycle-configuration filename-containing-lifecycle-configuration
```

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

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

**新增生命週期規則以中止未完成的分段上傳**

1. 設定 AWS CLI。如需說明，請參閱《[Amazon S3 API 參考》中的使用 AWS CLI 使用](https://docs.aws.amazon.com/AmazonS3/latest/API/setup-aws-cli.html) Amazon S3 開發。 *Amazon S3 * 

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

   ```
   {
       "Rules": [
           {
               "ID": "Test Rule",
               "Status": "Enabled",
               "Filter": {
                   "Prefix": ""
               },
               "AbortIncompleteMultipartUpload": {
                   "DaysAfterInitiation": 7
               }
           }
       ]
   }
   ```

1.  執行下列 CLI 命令，以在您的儲存貯體上設定此生命週期組態。

   ```
   aws s3api put-bucket-lifecycle-configuration   \
   --bucket amzn-s3-demo-bucket  \
   --lifecycle-configuration file://lifecycle.json
   ```

1.  若要驗證是否已在您的儲存貯體上設定生命週期組態，請使用下列 `get-bucket-lifecycle` 命令擷取生命週期組態。

   ```
   aws s3api get-bucket-lifecycle  \
   --bucket amzn-s3-demo-bucket
   ```

1.  若要刪除生命週期組態，請如下使用 `delete-bucket-lifecycle` 命令。

   ```
   aws s3api delete-bucket-lifecycle \
   --bucket amzn-s3-demo-bucket
   ```