使用针对目录存储桶的 S3 生命周期
S3 生命周期通过代表您删除已过期对象,助力您以更具成本效益的方式在目录存储桶中的 S3 Express One Zone 内存储对象。要管理对象的生命周期,请为目录存储桶创建 S3 生命周期配置。S3 生命周期配置 是一组规则,用于定义 Amazon S3 对一组对象应用的操作。您可以使用 Amazon 命令行界面(Amazon CLI)、Amazon SDK、Amazon S3 REST API 和 Amazon CloudFormation,在目录存储桶上设置 Amazon S3 生命周期配置。
在生命周期配置中,您可以使用规则来定义希望 Amazon S3 在对象上执行的操作。对于存储在目录存储桶中的对象,您可以创建生命周期规则,以便随着对象存在时间的增长而使其过期。您还可以创建生命周期规则,以每天一次的频率删除目录存储桶中未完成的分段上传。
当您向存储桶添加生命周期配置时,配置规则将应用到现有对象以及您在以后添加的对象。例如,如果您在今天添加带有过期操作的生命周期配置规则,而该规则使带有特定前缀的对象在创建 30 天后过期,S3 会将任何超过 30 天且具有指定前缀的现有对象加入移除队列。
目录存储桶的 S3 生命周期有何不同
对于目录存储桶中的对象,您可以创建生命周期规则,使对象过期并删除未完成的分段上传。但是,目录存储桶的 S3 生命周期不支持存储类之间的转换操作。
CreateSession
生命周期使用公共 DeleteObject
和 DeleteObjects
API 操作来使目录存储桶中的对象过期。要使用这些 API 操作,S3 生命周期将使用 CreateSession
API 建立临时安全凭证,以访问目录存储桶中的对象。有关更多信息,请参阅《Amazon S3 API Reference》中的 CreateSession
。
如果您具有拒绝向生命周期主体授予删除权限的有效策略,这将阻止您允许 S3 生命周期代表您删除对象。
使用存储桶策略向 S3 生命周期服务主体授予权限
以下存储桶策略授予允许使用默认 ReadWrite
会话进行 CreateSession 调用的权限,并允许生命周期服务主体。
例 – 允许通过默认 ReadWrite
会话执行 CreateSession
调用的存储桶策略
{ "Version":"2008-10-17", "Statement":[ { "Effect":"Allow", "Principal": { "Service":"lifecycle.s3.amazonaws.com" }, "Action":"s3express:CreateSession", "Condition": { "StringEquals": { "s3express:SessionMode": "ReadWrite" } }, "Resource":"arn:aws:s3express:us-east-2:412345678921:bucket/amzn-s3-demo-bucket--use2-az2--x-s3" } ] }
监控生命周期规则
对于存储在目录存储桶中的对象,S3 生命周期会生成 Amazon CloudTrail 管理和数据事件日志。有关更多信息,请参阅 S3 Express One Zone 的 CloudTrail 日志文件示例。
有关创建生命周期配置以及排查 S3 生命周期相关问题的更多信息,请参阅以下主题: