S3存储桶每日删除特定对象的生命周期规则配置问题
S3存储桶每日删除特定对象的生命周期规则配置问题
嘿,我来帮你搞定这个S3生命周期规则的问题!
首先得明确一个关键点:S3其实没有真正意义上的「文件夹」,所有看起来像文件夹的结构都是对象键(Object Key)的前缀而已。你之前用connect/test/2023/12/作为前缀没达到预期,是因为这个前缀会匹配所有以它开头的对象——包括03/下面的所有文件,这显然不是你想要的。
要精准删除01/和02/这两个前缀下的所有对象,你需要创建两个独立的生命周期规则,分别指定对应的前缀:
具体操作步骤
- 打开AWS S3控制台,找到你的
TestBucket - 切换到「管理」标签页,找到「生命周期规则」板块,点击「创建规则」
- 给第一个规则起个清晰的名字,比如
Delete-connect-test-2023-12-01 - 在「前缀」输入框里,精确填写:
connect/test/2023/12/01/(注意末尾的斜杠,确保只匹配这个前缀下的所有对象) - 配置「过期」动作:因为你要每日删除,可设置「过期对象」为「创建后0天」(或者根据实际需求调整时间,比如如果对象是每天生成的,设置0天就能当天删除)
- 完成第一个规则的创建后,重复上述步骤,创建第二个规则,前缀改为
connect/test/2023/12/02/
补充说明
如果之后你需要处理类似的批量日期前缀(比如每月的1号、2号文件夹),手动创建规则会比较繁琐,这时可以考虑用AWS CLI或者SDK(比如Python的boto3)来批量生成规则,不过针对当前这个特定场景,直接创建两个规则是最直接有效的方案。
备注:内容来源于stack exchange,提问作者Andrea Vitangeli




