欢迎使用新的 Amazon S3 用户指南! Amazon S3 用户指南结合了以下三个已停用的指南中的信息和说明:Amazon S3 开发人员指南、Amazon S3 控制台用户指南和 Amazon S3 入门指南。
在存储桶上设置生命周期配置
本部分介绍如何使用 AWS 开发工具包、AWS CLI 或 S3 控制台在存储桶上设置 S3 生命周期配置。有关 S3 生命周期配置的信息,请参阅管理存储生命周期。
您可以使用生命周期规则来定义您希望 Amazon S3 在对象的生命周期内执行的操作(例如,将对象转化为另一个存储类别、检索它们或在指定时期后删除它们)。
在设置生命周期配置之前,请注意以下情况:
传播延迟
将 S3 生命周期配置添加到存储桶时,在将新的或更新的生命周期配置完全传播到所有 Amazon S3 系统前通常存在一些滞后。在此配置完全生效之前,预计会有几分钟延迟。在删除 S3 生命周期配置时也可能出现这种延迟。
禁用或删除生命周期规则
禁用或删除生命周期规则时,在短暂延迟后 Amazon S3 会停止安排新对象的删除或转换。已安排的任何对象都将被取消安排,并且不会被删除或转换。
现有对象和新对象
当您向存储桶添加生命周期配置时,配置规则将应用到现有对象以及您在以后添加的对象。例如,如果您在今天添加带有过期操作的生命周期配置规则,而该规则使带有特定前缀的对象在创建 30 天后过期,Amazon S3 会将任何超过 30 天的现有对象加入删除队列。
账单发生变化
当满足生命周期配置规则时,可能经过一些滞后才会触发相应的操作。但一满足生命周期配置规则,账单就会立即发生变化,无论是否执行操作。
例如,在对象到期后,即使没有立即删除,也不会向您收取存储费。另一个示例是对象转换时间一过就会立即按照 Amazon S3 Glacier 存储费率向您收费,即使没有立即将该对象转换为 S3 Glacier 存储类也是如此。生命周期转换为 S3 智能分层存储类是例外。在对象转换为 S3 智能分层存储类之前,账单不会发生更改。
您可以使用共享前缀(以通用字符串开头的对象名称)或标签为存储桶中的所有对象或一部分对象定义生命周期规则。
使用生命周期规则,您可以定义特定于当前和非当前对象版本的操作。有关更多信息,请参阅下列内容:
创建生命周期规则
-
登录 AWS 管理控制台,并通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
在 Buckets (存储桶) 列表中,选择要为其创建生命周期规则的存储桶的名称。
-
选择 Management (管理) 选项卡,然后选择 Create lifecycle rule (创建生命周期规则)。
-
在 Lifecycle rule name (生命周期规则名称) 中,输入规则的名称。
在该存储桶内,此名称必须是唯一的。
-
选择生命周期规则的范围:
-
要将此生命周期规则应用于所有带特定前缀或标签的对象,请选择将范围限制在特定前缀或标签。
-
要按前缀限制范围,请在 Prefix (前缀) 中输入前缀。
-
要按标签限制范围,请选择 Add tag (添加标签),然后输入标签键和值。
有关对象名称前缀的更多信息,请参阅创建对象键名称。有关对象标签的更多信息,请参阅使用标签对存储进行分类。
-
-
要将此生命周期规则应用于存储桶中的所有对象,请选择 This rule applies to all objects in the bucket (此规则适用于存储桶中的所有对象),然后选择 I acknowledge that this rule applies to all objects in the bucket (我确认此规则适用于存储桶中的所有对象)。
-
-
在 Lifecycle rule actions (生命周期规则操作) 下,选择希望生命周期规则执行的操作:
-
在存储类之间转换对象的当前版本
-
在存储类之间转换对象的先前版本
-
使对象的当前版本过期
-
永久删除对象的先前版本
-
删除过期的删除标记或未完成的分段上传
根据您选择的操作,会显示不同的选项。
-
-
要在存储类之间转换对象的当前版本,请在 Transition current versions of objects between storage classes (在存储类之间转换对象的当前版本) 下面:
-
在 Storage class transitions (存储类转换) 中,选择要过渡到的存储类:
-
Standard-IA (标准 - IA)
-
智能分层
-
One Zone-IA (单区 - IA)
-
Glacier
-
Glacier Deep Archive (Glacier 深度存档)
-
-
在 Days after object creation (对象创建后的天数) 中,输入创建后转换对象的天数。
有关存储类别的更多信息,请参阅 使用 Amazon S3 存储类。您可以为当前对象版本和/或之前的对象版本定义转换。版本控制允许您在一个存储桶中保留多个版本的对象。有关版本控制的更多信息,请参阅使用 S3 控制台。
重要 如果选择 Glacier 或 Glacier Deep Archive 存储类,您的对象将在 Amazon S3 中保留。您无法直接通过单独的 Amazon S3 Glacier 服务访问它们。有关更多信息,请参阅 使用 Amazon S3 生命周期转换对象。
-
-
要在存储类之间转换对象的非当前版本,请在 Transition non-current versions of objects between storage classes (在存储类之间转换对象的非当前版本) 下面:
-
在 Storage class transitions (存储类转换) 中,选择要过渡到的存储类:
-
Standard-IA (标准 - IA)
-
智能分层
-
One Zone-IA (单区 - IA)
-
Glacier
-
Glacier Deep Archive (Glacier 深度存档)
-
-
在 Days after object becomes non-current (对象成为非当前对象后的天数) 中,输入创建后转换对象的天数。
-
-
要使对象的当前版本过期,请在 Expire previous versions of objects (使对象的先前版本过期) 下面的 Number of days after object creation (对象创建后的天数) 中输入天数。
重要 在不受版本控制的存储桶中,失效操作会导致 Amazon S3 永久删除该对象。有关生命周期操作的更多信息,请参阅用于描述生命周期操作的元素。
-
要永久删除对象的先前版本,请在 Permanently delete previous versions of objects (永久删除对象的先前版本) 下面的 Number of days after objects become previous versions (对象成为先前版本后的天数) 中输入天数。
-
在 Delete expired delete markers or incomplete multipart uploads (删除过期的删除标记或未完成的分段上传) 下面,选择 Delete expired object delete markers (删除过期对象的删除标记) 和 Delete incomplete multipart uploads (删除未完成的分段上传)。然后,输入您要在分段上传启动多少天后结束并清理未完成的分段上传。
有关分段上传的更多信息,请参阅使用分段上传来上传和复制对象。
-
选择 Create rule (创建规则)。
如果规则没有任何错误,Amazon S3 会启用它,并且您可以在 Lifecycle rules (生命周期规则) 下的 Management (管理) 选项卡上看到它。
有关 CloudFormation 模板和示例的信息,请参阅 AWS CloudFormation 用户指南中的使用 AWS CloudFormation 模板和 AWS::S3::Bucket。
您可以使用以下 AWS CLI 命令管理 S3 生命周期配置:
-
put-bucket-lifecycle-configuration
-
get-bucket-lifecycle-configuration
-
delete-bucket-lifecycle
有关设置 AWS CLI 的说明,请参阅使用 AWS CLI 进行 Amazon S3 开发。
Amazon S3 生命周期配置是一个 XML 文件。但在使用 AWS CLI 时,您不能指定 XML。您必须改为指定 JSON。以下是您可在 AWS CLI 命令中指定的示例 XML 生命周期配置和等效 JSON。
请考虑以下示例 S3 生命周期配置。
例 示例 1
例 示例 2
您可以测试 put-bucket-lifecycle-configuration
,如下所示。
测试配置
-
将 JSON 生命周期配置保存在一个文件 (
lifecycle.json
) 中。 -
运行以下 AWS CLI 命令以在存储桶上设置生命周期配置。
$
aws s3api put-bucket-lifecycle-configuration \ --bucketbucketname
\ --lifecycle-configuration file://lifecycle.json -
要进行验证,可使用
get-bucket-lifecycle-configuration
AWS CLI 命令检索 S3 生命周期配置,如下所示。$
aws s3api get-bucket-lifecycle-configuration \ --bucketbucketname
-
要删除 S3 生命周期配置,可使用
delete-bucket-lifecycle
AWS CLI 命令,如下所示。aws s3api delete-bucket-lifecycle \ --bucket
bucketname
Amazon Simple Storage Service API 参考中的以下几节描述了与 S3 生命周期配置相关的 REST API。