AWS S3生命周期规则设置已过期Date字段会触发什么操作?
S3生命周期规则配置早于当前时间的过期日期的执行行为
核心结论
配置早于当前UTC时间的过期日期时,匹配前缀规则的对象既不会被实时立即删除,也不会被规则完全忽略不处理。
具体执行逻辑
- S3原生的生命周期规则所有动作(包括过期删除、存储类型转换)均为后台异步扫描执行,无实时触发逻辑:系统每日会在UTC零点后启动例行扫描,遍历所有桶的生命周期规则、匹配符合条件的对象加入操作队列,队列任务通常会在扫描启动后的48小时内执行完成。
Expiration.Date字段的判断规则不关心规则配置时该日期是否已经过去:只要对象的最后修改时间早于Date字段指定的UTC时间戳,就会被判定为符合过期条件,纳入待删除队列。
对应场景的实际表现
路径为aws/test.txt的对象匹配规则中配置的aws/前缀,当过期日期设为已经过去的2022-06-21T00:00:00+00:00时:
- 保存规则的瞬间不会触发即时删除,对象在短时间内仍可正常访问
- 规则不会失效,在下一次S3生命周期例行扫描时,该对象会被标记为过期并加入删除队列,后续自动完成删除
对应规则配置如下:
{ "Rules": [ { "Expiration": { "Date": "2022-06-21T00:00:00+00:00" }, "ID": "rule-1", "Filter": { "Prefix": "aws/" }, "Status": "Enabled" } ] }
注意:如果使用的是第三方S3兼容存储服务(如MinIO、自建对象存储等),后台扫描的间隔、删除执行的延迟可能和原生AWS S3存在差异,但核心逻辑一致:已过去的过期日期不会导致规则失效,也不会触发实时删除。
内容的提问来源于stack exchange,提问作者guo-sj
相关产品推荐
相关产品推荐

