我想检查一些文件是否真的在我的s3存储桶中。使用aws cli我可以用一个像
这样的ls文件aws s3 ls s3://mybucket/file/path/file001.jpg
但我需要能够为多个文件执行此操作
aws s3 ls s3://mybucket/file/path/file001.jpg ls s3://mybucket/file/path/file002.jpg
无效
也不是
aws s3 ls s3://mybucket/file/path/file001.jpg s3://mybucket/file/path/file005.jpg
当然
aws s3 ls s3://mybucket/file/path/file001.jpg;
aws s3 ls s3://mybucket/file/path/file005.jpg
工作完美,但很慢。获取一个文件大约需要1秒,因为它每次都连接一个关闭连接。
我定期检查数百个文件,所以我需要一个快速的方法来完成它。感谢
我不是坚持使用ls,或者传递路径,文件名的“查找”也会这样做(但是aws cli似乎缺乏查找)。另一个工具(只要可以使用命令行调用),就可以了
我不想获取所有文件的列表,或者让脚本查看所有文件,然后发布流程。我需要一种方法来问s3一次给我一个a,r,z。
我认为s3api listobjects调用应该是一个,但我的语法失败,一次询问几个文件名。
答案 0 :(得分:1)
您可以使用python boto3 sdk for AWS
轻松完成此操作import boto3
s3 = boto3.resource('s3')
bucket=s3.Bucket('mausamrest');
for obj in bucket.objects.all():
print(obj.key)
其中 mausamrest 是存储桶