我正在做一个自动化工作,其中我需要从S3存储桶中的文件夹下载所有文件,而不管文件名如何。我了解在python中使用boto3可以下载以下文件:
s3BucketObj = boto3.client('s3', region_name=awsRegion, aws_access_key_id=s3AccessKey, aws_secret_access_key=s3SecretKey)
s3BucketObj.download_file(bucketName, "abc.json", "/tmp/abc.json")
但是我当时试图下载所有文件,而不管用这种方式指定什么文件名:
s3BucketObj.download_file(bucketName, "test/*.json", "/test/")
我知道上面的语法可能是完全错误的,但是有一种简单的方法吗?
我确实找到了一个有助于解决问题的线程,但似乎有点复杂:Boto3从S3存储桶下载所有文件
没有对可以下载多个文件的Amazon S3的API调用。
最简单的方法是使用具有和命令的AWS命令行界面(CLI)。它将为您做任何事情。aws s3 cp --recursive
aws s3 sync
如果您选择自己编程,那么Boto3可以从S3存储桶下载所有文件,这是一个很好的方法。这是因为您需要做几件事:
如果您不希望重现目录结构(例如,如果所有对象都在同一路径中),则可以简化该任务。在这种情况下,您可以简单地遍历对象并将每个对象下载到同一目录。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句