Amazon S3通配符删除对象,lifecycle-rule的prefix配置是否正确?
S3生命周期规则prefix配置有效性解答
结论
你设置的one/inside-one/*/*/banana前缀配置不正确,既无法匹配到你想要删除的目标路径,也存在潜在的误删风险。
核心原因
- Amazon S3的生命周期规则
prefix过滤器采用纯字符串前缀匹配逻辑,不支持*这类通配符语法。你配置中的*会被S3识别为路径中的实际字符,只有存储桶内存在名称为*的目录时,规则才会生效。你当前的目录结构中没有这类路径,所以该规则暂时不会删除任何内容。 - 假设后续你不小心上传了路径中包含
*的对象(比如one/inside-one/*/test/banana/test.txt),该规则会误删这类不符合你预期的对象。
正确配置方式
如果要精准删除你列出的4个banana目录下的所有内容,需要在生命周期规则中逐个添加以下4个前缀即可,不会误删其他路径的内容:
one/inside-one/test1/abc/banana one/inside-one/test1/xyz/banana one/inside-one/test2/def/banana one/inside-one/test4/xyz/banana
注:S3本身没有真实的目录结构,所谓目录只是对象键的前缀分组,配置上述前缀后,所有对象键以对应字符串开头的对象都会被匹配删除,刚好对应你要清理的各个banana目录下的全部文件。
内容的提问来源于stack exchange,提问作者Jananath Banuka
相关产品推荐
相关产品推荐

