我想获取S3存储桶中具有特定命名模式的所有文件的列表。 例如,如果我有
之类的文件aaaa2018-05-01
aaaa2018-05-23
aaaa2018-06-30
aaaa2018-06-21
我需要获取第5个月所有文件的列表。输出应如下所示:
aaaa2018-05-01
aaaa2018-05-23
我执行了以下命令,结果为空:
aws s3api list-objects --bucket bucketname --query "Contents[?contains(Key, 'aaaa2018-05-*')]" > s3list05.txt
当我检查s3list05.txt为空时。我也尝试了以下命令和
aws s3 ls s3:bucketname --recursive | grep aaaa2018-05* > s3list05.txt
此命令列出了文件中存在的所有对象。 请让我知道获得所需输出的确切命令。
答案 0 :(得分:1)
您快到了。试试这个:
aws s3 ls s3://bucketname --recursive | grep aaaa2018-05
或
aws s3 ls bucketname --recursive | grep aaaa2018-05
答案 1 :(得分:1)
Contains
参数不需要通配符:
aws s3api list-objects --bucket bucketname --query "Contents[?contains(Key, 'aaaa2018-05')].[Key]" --output text
这提供了密钥列表。
--output text
删除JSON格式。
使用[Key]
而不是Key
将它们全部放在一行上。