在 S3 存储桶中,我存储了成千上万个文件,其名称的结构归结为前缀和数字:
A-0001
A-0002
A-0003
B-0001
B-0002
C-0001
C-0002
C-0003
C-0004
C-0005
给定前缀的新对象应该以不同的频率出现,但可能不会。较旧的对象可能会消失。
有没有办法有效地查询 S3 以获得每个前缀的最大数量,即不列出整个存储桶?我想要的结果是:
A-0003
B-0002
C-0005
S3 API 本身似乎没有提供任何可用的东西。但是,也许像 Athena 这样的其他服务可以做到这一点?到目前为止,我只发现它能够在对象内搜索,但我只关心它们的键名。如果它可以报告桶中对象的内容,它不能报告桶本身吗?
我可以接受每个前缀的最新修改日期,但我想避免切换到仅使用前缀作为名称的版本化存储桶来实现这一点。
最佳答案
我认为这就是你要找的:
变量名是 $path ,您可以使用正则表达式来获取您正在查询的模式...
WHERE regexp_extract(sp."$path", '[^/]+$') like concat('%',cast(current_date - interval '1' day as varchar),'.csv')
关于amazon-web-services - 有没有办法查询每个前缀的最新 S3 对象键名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47804941/