Amazon S3删除通配符模式的对象



我有一个Amazon S3桶,我有以下结构:


one/
inside-one/
test1/
abc/
apple/
mango/
banana/
def/
apple/
mango/
xyz/
apple/
mango/
banana/
test2/
abc/
apple/
mango/
def/
apple/
mango/
banana/
xyz/
apple/
mango/
test3/
test4/  
abc/
apple/
mango/
def/
apple/
mango/
xyz/
apple/
mango/
banana/    
inside-one-two/
inside-one-three/
two/
three/

并且我要删除每个目录下的ONLY the/banana目录。所以我想写一个lifecycle-ruleprefix限制这个规则的范围使用一个或多个过滤器

所以我添加了下面的前缀,我认为正确的前缀应该是:
one/inside-one/*/*/banana
谁能帮我确认一下吗?我的prefix是正确的,它不会删除除以下文件/目录以外的任何东西?
one/inside-one/test1/abc/banana
one/inside-one/test1/xyz/banana
one/inside-one/test2/def/banana
one/inside-one/test4/xyz/banana

因为通配符星号字符(*)是一个可以在对象键名中使用的有效字符,所以Amazon S3将星号字面上解释为前缀或后缀过滤器。

因此,由于以上原因,这在生命周期规则中是不可能的。

https://aws.amazon.com/premiumsupport/knowledge-center/s3-event-notification-filter-wildcard/

我认为最好的方法是使用Lambda来检查对象键和通配符来删除这些文件。使用CloudWatch Events触发lambda

最新更新