如何获取具有特定模式的aws存储桶上的文件列表

man*_*ans 6 amazon-s3 amazon-web-services

我正在寻找一种从 aws 获取具有特定模式的文件列表的方法。但好像不能支持。

详细地:

我在 AWS 中有一个存储桶,里面有几十万个文件,我想找到具有特定模式的文件。例如,我想找到存储桶中所有“my*.txt”的文件并列出它们。

如果我运行这个命令:

aws s3 ls s3://my_bucket/  --recursive > byBucketList.txt
Run Code Online (Sandbox Code Playgroud)

然后我可以在文本文件中搜索我的文件并找到它们在哪里。但我无法运行这样的东西:

 aws s3 ls s3://my_bucket/my*.txt  --recursive > byBucketList.txt
Run Code Online (Sandbox Code Playgroud)

仅获取我正在查找的文件列表。

有什么方法可以获取 AWS 存储桶上具有特定模式的文件列表吗?

Mar*_*cin 7

遗憾的是你不能用 来做到这一点s3 ls。但是您可以将排除和包含过滤器--dryrun一起用于支持过滤器的命令。例如,对于s3 cp

aws s3 cp s3://my_bucket ./. --recursive --dryrun --exclude "*" --include "my*.txt"
Run Code Online (Sandbox Code Playgroud)

--dryrun (boolean) 显示将使用指定命令执行的操作,而无需实际运行它们

这应该打印出通常不带选项复制的所有对象--dryrun

由于您有一个大桶,因此您可以在小桶上测试它,只是为了感受命令的感觉,因为它的输出与s3 ls.