Amazon s3 如何从包含多个子文件夹的bucket中筛选每个对象前缀的s3通知
我使用s3存储,它包含一个包含多个子文件夹的bucket 例如: 我的桶/根 mybucket/root/sub1 mybucket/root/sub2 mybucket/root/sub2/sub3/sub4/sub5 每个文件夹都可以包含s3对象,但我只想将以前缀“p”开头的文件通知到sqs中 我已经设置了前缀“p*”,但现在它可以过滤所有文件 是否应为所有目录的所有前缀设置该值? 我可以将其设置为仅对象的,忽略目录前缀吗? i、 e前缀仅用于文件Amazon s3 如何从包含多个子文件夹的bucket中筛选每个对象前缀的s3通知,amazon-s3,Amazon S3,我使用s3存储,它包含一个包含多个子文件夹的bucket 例如: 我的桶/根 mybucket/root/sub1 mybucket/root/sub2 mybucket/root/sub2/sub3/sub4/sub5 每个文件夹都可以包含s3对象,但我只想将以前缀“p”开头的文件通知到sqs中 我已经设置了前缀“p*”,但现在它可以过滤所有文件 是否应为所有目录的所有前缀设置该值? 我可以将其设置为仅对象的,忽略目录前缀吗? i、 e前缀仅用于文件 谢谢。在S3中,在一个bucket中,名称
谢谢。在S3中,在一个bucket中,名称空间实际上是平面的。对象键中出现的
/
用于模拟文件夹结构,但该结构实际上并不存在,S3在大多数情况下将对象键视为单个字符串,而不是路径+文件名
事件筛选器规则是使用整个对象键的情况,因此只能通过整个键的前缀或后缀指定匹配——路径+文件名
如果您在bucket的根目录中有多个“目录”,例如foo/
和bar/
,并且您希望查找/
分隔符后面的下一个字符为p
的对象,那么您需要一个与前缀foo/p
和bar/p
匹配的规则。这些是前缀,而不是模式,因此您不会在结尾使用*
。您也不会将/
放在开头,因为在S3中,对象键实际上并不以/
开头(一些SDK可能会通过允许对象键包含或省略前导斜杠来隐藏这一事实)