我注意到在AWS管理控制台中似乎没有下载整个s3存储桶的选项。
有没有一种简单的方法可以获取我一个存储桶中的所有内容?我正在考虑将根文件夹设为公共,使用wget来获取所有内容,然后再将其设置为私有,但我不知道是否有更简单的方法。
我注意到在AWS管理控制台中似乎没有下载整个s3存储桶的选项。
有没有一种简单的方法可以获取我一个存储桶中的所有内容?我正在考虑将根文件夹设为公共,使用wget来获取所有内容,然后再将其设置为私有,但我不知道是否有更简单的方法。
请参阅“AWS CLI命令参考”以获取更多信息。
AWS最近发布了他们的命令行工具,其工作方式类似于boto,并且可以使用以下方法进行安装
sudo easy_install awscli
或者
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目录内的所有文件和文件夹密钥。
s3cmd和Cyberduck,但对我来说,使用awscli是从我的桶(bucket)下载大约70,000个文件最快的方法。 - Arjen您可以使用 s3cmd 下载您的存储桶:
s3cmd --configure
s3cmd sync s3://bucketnamehere/folder /destination/folder
还有另一种工具可以使用,叫做rclone。这是Rclone文档中的代码示例:rclone sync /home/local/directory remote:bucket
我使用过几种不同的方法将亚马逊 S3 数据复制到本地机器,包括 s3cmd ,但到目前为止,最简单的方法是使用Cyberduck。
你只需要输入你的亚马逊凭证并使用简单的界面来下载、上传、同步你的任何存储桶、文件夹或文件即可。
您有很多选项可以完成这个任务,但最好的方法是使用 AWS CLI。
以下是一些步骤:
在您的计算机上下载并安装 AWS CLI:
配置 AWS CLI:
请确保您输入了有效的访问和秘密密钥,这些密钥在创建帐户时收到。
使用以下命令同步 S3 存储桶:
aws s3 sync s3://yourbucket /local/path
在上述命令中,替换以下字段:
yourbucket >> 您要下载的S3存储桶。/local/path >> 您要下载所有文件的本地系统路径。s3://前缀!!!使用aws s3 ls命令时,您不需要该s3://前缀,但cp命令需要。 - cjmling使用AWS S3 CLI下载:
aws s3 cp s3://WholeBucket LocalFolder --recursive
aws s3 cp s3://Bucket/Folder LocalFolder --recursive
要使用代码下载,请使用AWS SDK。
要使用图形界面下载,请使用Cyberduck。
aws s3 cp s3://my-bucket-name ./local-folder --recursive --include "*" --exclude "excludeFolder/*" --exclude "includeFolder/excludeFile.txt" - DarkCenobyte@Layke的回答很好,但如果您有大量数据并且不想等待太久,您应该阅读“AWS CLI S3 Configuration”。
以下命令将告诉AWS CLI使用1,000个线程来执行作业(每个文件较小或多部分复制的其中一部分),并向前查看100,000个作业:
aws configure set default.s3.max_concurrent_requests 1000
aws configure set default.s3.max_queue_size 100000
在运行完这些操作之后,你可以使用简单的 sync 命令:aws s3 sync s3://source-bucket/source-path s3://destination-bucket/destination-path
或者aws s3 sync s3://source-bucket/source-path c:\my\local\data\path
在一个拥有4核CPU和16GB RAM的系统上,对于像我这样(3-50GB文件)的情况,同步/复制速度从大约9.5MiB/s提高到了700+MiB/s,相比默认配置提高了70倍。
aws configure set s3.max_concurrent_requests 1000 --profile profile-name。 - Pravin Singh对我来说百分之百有效,我已经从AWS S3存储桶下载了所有文件。
安装AWS CLI。选择您的操作系统并按照此处的步骤进行操作:安装或更新最新版本的AWS CLI
检查AWS版本:aws --version
aws configureaws s3 cp s3://yourbucketname your\local\path --recursive例如(Windows操作系统):aws s3 cp s3://yourbucketname C:\aws-s3-backup\project-name --recursive
对于Windows来说,我发现S3 Browser是最简单的方式。它是优秀的软件,且非商业使用免费。
aws s3 sync的实际应用:https://www.youtube.com/watch?v=J2aZodwPeQk - Dennis Traubaws s3 cp s3://Bucket/Folder LocalFolder --recursive- DanielBell99