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

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


当前回答

为了添加另一个GUI选项,我们使用了WinSCP的S3功能。它非常容易连接,只需要你的访问密钥和密钥在用户界面。然后,您可以从任何可访问的存储桶中浏览和下载所需的任何文件,包括嵌套文件夹的递归下载。

由于通过安全检查新软件可能是一个挑战,而且WinSCP相当普遍,因此使用它而不是尝试安装更专业的实用程序会非常有益。

其他回答

使用boto3下载具有特定前缀的桶中的所有对象

import boto3

s3 = boto3.client('s3', region_name='us-east-1', 
                     aws_access_key_id=AWS_KEY_ID, 
                     aws_secret_access_key=AWS_SECRET)

def get_all_s3_keys(bucket,prefix):
    keys = []

    kwargs = {'Bucket': bucket,Prefix=prefix}
    while True:
        resp = s3.list_objects_v2(**kwargs)
        for obj in resp['Contents']:
             keys.append(obj['Key'])

        try:
            kwargs['ContinuationToken'] = resp['NextContinuationToken']
        except KeyError:
            break

        return keys

def download_file(file_name, bucket,key):
    file=s3.download_file(
    Filename=file_name,
    Bucket=bucket,
    Key=key)
    return file

bucket="gid-folder"
prefix="test_"
keys=get_all_s3_keys(bucket,prefix):

for key in keys:
     download_file(key, bucket,key)
   
 

使用AWS S3 CLI下载:

aws s3 cp s3://WholeBucket LocalFolder --recursive
aws s3 cp s3://Bucket/Folder LocalFolder --recursive

要使用代码下载,请使用AWS SDK。

要使用GUI下载,请使用Cyberduck。

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

为了添加另一个GUI选项,我们使用了WinSCP的S3功能。它非常容易连接,只需要你的访问密钥和密钥在用户界面。然后,您可以从任何可访问的存储桶中浏览和下载所需的任何文件,包括嵌套文件夹的递归下载。

由于通过安全检查新软件可能是一个挑战,而且WinSCP相当普遍,因此使用它而不是尝试安装更专业的实用程序会非常有益。

试试这个命令:

aws s3同步您的bucketnamedirectory您的localdirectory

例如,如果你的桶名是myBucket,本地目录是c:\local,那么:

aws s3 sync s3://myBucket c:\local

有关awscli的更多信息,请查看这个 Aws cli安装