配置存储桶生命周期策略以中止未完成的分段上传 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

配置存储桶生命周期策略以中止未完成的分段上传

作为最佳实践,我们建议您使用 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 不会执行任何操作)。此外,此操作不适用于对象。此生命周期操作不会删除任何对象。

以下 put-bucket-lifecycle-configuration CLI 命令为指定的存储桶添加生命周期配置。

$ aws s3api put-bucket-lifecycle-configuration  \ --bucket bucketname  \ --lifecycle-configuration filename-containing-lifecycle-configuration

要测试 CLI 命令,请执行以下操作:

  1. 设置 Amazon CLI。有关说明,请参阅 使用 Amazon 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 bucketname  \ --lifecycle-configuration file://lifecycle.json
  4. 要进行验证,请使用 get-bucket-lifecycle CLI 命令检索生命周期配置。

    aws s3api get-bucket-lifecycle  \ --bucket bucketname
  5. 要删除生命周期配置,请使用 delete-bucket-lifecycle CLI 命令。

    aws s3api delete-bucket-lifecycle \ --bucket bucketname