我有一个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-rule
和prefix
限制这个规则的范围使用一个或多个过滤器
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