如何使用 shell 脚本列出 s3 存储桶中具有特定字符的所有对象

how to list all objects in s3 bucket having having specific character in the key using shell script

我有一个 s3 存储桶,下面是目录结构。

bucketname/uid=/year=/month=/day=/files.parquet

在某些情况下,在 year 目录中我有一些由 athena.Ex:

创建的临时对象
month=11_$folder$

我想删除所有这些 key = month=11_$folder$.

的文件

目前我正在循环处理所有 uid。有没有更快的方法来做到这一点?

使用 aws cli list-objects-v2 您可以搜索模式

aws s3api list-objects-v2 \
    --bucket my-bucket \
    --query 'Contents[?contains(Key, `month=11_$folder$`)]'

请注意,这仍然会查询 所有 您的对象,并且只会过滤返回的内容,因此如果您的存储桶中有超过 1,000 个对象,您将需要 paginate