我注意到似乎没有从AWS管理控制台下载整个s3桶的选项。

有什么简单的方法可以把所有东西都装进我的桶里吗?我正在考虑使根文件夹公共,使用wget抓取它,然后再次使它私有,但我不知道是否有更简单的方法。


当前回答

你可以用s3cmd命令简单地得到它:

s3cmd get --recursive --continue s3://test-bucket local-directory/

其他回答

当在Windows,我的首选GUI工具这是CloudBerry Explorer免费软件 Amazon S3。它有一个相当精致的文件资源管理器和类似ftp的界面。

正如Neel Bhaat在这篇博客中解释的那样,有许多不同的工具可以用于此目的。有些是AWS提供的,大多数是第三方工具。所有这些工具都要求您将AWS帐户密钥和秘密保存在工具本身。在使用第三方工具时要非常谨慎,因为你保存的凭证可能会让你失去全部价值,让你完蛋。

因此,我总是建议为此使用AWS CLI。您可以从这个链接简单地安装它。接下来,运行以下命令并在AWS CLI中保存密钥和秘密值。

aws configure

并使用以下命令将AWS S3 Bucket同步到本地计算机。(本地机器应该安装了AWS CLI)

aws s3 sync <source> <destination>

例子:

1)用于AWS S3到本地存储

aws s3 sync <S3Uri> <LocalPath>

2)从本地存储到AWS S3

aws s3 sync <LocalPath> <S3Uri>

3)从AWS s3桶到另一个桶

aws s3 sync <S3Uri> <S3Uri> 

AWS SDK API是将整个文件夹和存储库上传到AWS S3以及在本地下载整个AWS S3存储桶的最佳选择。

上传整个文件夹到AWS S3: AWS S3 sync。s3: / / BucketName

本地下载整个AWS S3桶:AWS S3 sync S3://BucketName。

您还可以为AWS S3桶中的特定文件夹分配路径,如BucketName/ path。

使用awscli下载/上传文件到s3总是更好。同步将帮助您恢复没有任何麻烦。

aws s3 sync s3://bucketname/ .

你可以用s3cmd命令简单地得到它:

s3cmd get --recursive --continue s3://test-bucket local-directory/