将文件从s3复制到本地?

4 amazon-s3 boto amazon-web-services aws-cli

我的 s3 存储桶中有很多文件,那么是否有任何 aws cli 命令可以用来查找 s3 中具有前缀名称的最新文件?如何将该文件从 s3 复制到我的本地文件夹?我可以使用 Boto3 或 python 库来执行此操作吗?

Joh*_*ein 8

下面展示了如何用 Python 实现这一点:

\n
import boto3\n\ns3_client = boto3.client(\'s3\')\n\nresponse = s3_client.list_objects_v2(Bucket=\'MY-BUCKET\', Prefix=\'foo/\')\nobjects = sorted(response[\'Contents\'], key=lambda obj: obj[\'LastModified\'])\n\n## Latest object\nlatest_object = objects[-1][\'Key\']\nfilename = latest_object[latest_object.rfind(\'/\')+1:] # Remove path\n\n# Download it to current directory\ns3_client.download_file(\'MY-BUCKET\', latest_object, filename)\n
Run Code Online (Sandbox Code Playgroud)\n

基本上,您返回所有对象,然后按 进行排序LastModified

\n

请注意,该list_objects_v2()命令最多仅返回 1000 个对象。如果存储桶有更多,您将需要循环或使用分页器。请参阅:分页器 \xe2\x80\x94 Boto3 文档

\n