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

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


当前回答

下面是一个总结,你必须做什么来复制整个桶:

1. 创建一个可以操作AWS s3桶的用户

遵循这篇官方文章:配置基础知识

别忘了:

勾选“编程访问”,以便有可能通过CLI处理AWS。 为用户添加正确的IAM policy,允许用户与s3桶进行交互

2. 下载、安装和配置AWS CLI

查看允许配置的链接:https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html

您可以使用以下命令来添加您在创建用户时获得的密钥:

$ aws configure
AWS Access Key ID [None]: <your_access_key>
AWS Secret Access Key [None]: <your_secret_key>
Default region name [None]: us-west-2
Default output format [None]: json

3.使用以下命令下载内容

你可以递归cp命令,但是aws sync命令是f:

aws s3 sync s3://your_bucket /local/path

要在真正下载之前查看下载的文件是什么,可以使用——dryrun选项。 为了提高速度,可以调整s3的max_concurrent_requests和max_queue_size属性。参见:http://docs.aws.amazon.com/cli/latest/topic/s3-config.html 您可以使用——exclude和——include选项排除/包含一些文件。参见:https://docs.aws.amazon.com/cli/latest/reference/s3/

例如,下面的命令将显示桶中显示的所有.png文件。在不使用——dryrun的情况下重播命令以下载结果文件。

aws s3 sync s3://your_bucket /local/path --recursive --exclude "*" --include "*.png" --dryrun

其他回答

试试这个命令:

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中,但这只是在有限的时间内。

正如@layke所说,从S3 cli下载文件是最好的做法,这是安全的。但在某些情况下,人们需要使用wget来下载文件,下面是解决方案

aws s3 presign s3://<your_bucket_name/>

这将presign将为您提供临时公共URL,您可以使用presign_url从S3下载内容,在您的情况下使用wget或任何其他下载客户端。

Windows User need to download S3EXPLORER from this link which also has installation instructions :- http://s3browser.com/download.aspx Then provide you AWS credentials like secretkey, accesskey and region to the s3explorer, this link contains configuration instruction for s3explorer:Copy Paste Link in brower: s3browser.com/s3browser-first-run.aspx Now your all s3 buckets would be visible on left panel of s3explorer. Simply select the bucket, and click on Buckets menu on top left corner, then select Download all files to option from the menu. Below is the screenshot for the same:

桶选择界面

然后浏览文件夹以下载特定位置的bucket 点击OK,下载就开始了。

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

aws s3 sync s3://bucketname/ .