我注意到似乎没有从AWS管理控制台下载整个s3桶的选项。
有什么简单的方法可以把所有东西都装进我的桶里吗?我正在考虑使根文件夹公共,使用wget抓取它,然后再次使它私有,但我不知道是否有更简单的方法。
我注意到似乎没有从AWS管理控制台下载整个s3桶的选项。
有什么简单的方法可以把所有东西都装进我的桶里吗?我正在考虑使根文件夹公共,使用wget抓取它,然后再次使它私有,但我不知道是否有更简单的方法。
当前回答
试试这个命令:
aws s3同步您的bucketnamedirectory您的localdirectory
例如,如果你的桶名是myBucket,本地目录是c:\local,那么:
aws s3 sync s3://myBucket c:\local
有关awscli的更多信息,请查看这个 Aws cli安装
其他回答
另一个可以帮助一些OS X用户的选项是Transmit。
它是一个FTP程序,还可以让您连接到S3文件。而且,它有一个选项,可以将任何FTP或S3存储作为文件夹挂载在Finder中,但这只是在有限的时间内。
Aws同步是完美的解决方案。它不是双向的。从源头到目的地只有一条路。此外,如果你在bucket中有很多项目,首先创建s3端点将是一个好主意,这样下载就会更快(因为下载不是通过互联网进行的,而是通过内部网进行的),而且不收费
除了关于aws s3同步的建议外,我还建议查看s5cmd。
根据我的经验,我发现对于多次下载或大规模下载,这比AWS CLI要快得多。
S5cmd支持通配符,这样可以工作:
S5cmd cp s3://桶名/* ./文件夹
AWS CLI
有关更多信息,请参阅“AWS CLI命令参考”。
AWS最近发布了他们的命令行工具,它的工作原理很像boto,可以使用
sudo easy_install awscli
or
sudo pip install awscli
安装完成后,您可以简单地运行:
aws s3 sync s3://<source_bucket> <local_destination>
例如:
aws s3 sync s3://mybucket .
将mybucket中的所有对象下载到当前目录。
并输出:
download: s3://mybucket/test.txt to test.txt
download: s3://mybucket/test2.txt to test2.txt
这将使用单向同步下载您的所有文件。它不会删除当前目录中的任何现有文件,除非您指定了——delete,而且它不会更改或删除S3上的任何文件。
您还可以进行S3桶到S3桶的同步,或本地到S3桶的同步。
请查看文档和其他示例。
虽然上面的示例是如何下载完整的存储桶,但您也可以通过执行下面的操作递归地下载文件夹
aws s3 cp s3://BUCKETNAME/PATH/TO/FOLDER LocalFolderName --recursive
这将指示CLI递归下载BUCKETNAME桶中的PATH/ to / folder目录中的所有文件和文件夹键。
您可以使用sync来下载整个S3桶。例如,下载当前目录下名为bucket1的整个桶。
aws s3 sync s3://bucket1 .