我注意到似乎没有从AWS管理控制台下载整个s3桶的选项。
有什么简单的方法可以把所有东西都装进我的桶里吗?我正在考虑使根文件夹公共,使用wget抓取它,然后再次使它私有,但我不知道是否有更简单的方法。
我注意到似乎没有从AWS管理控制台下载整个s3桶的选项。
有什么简单的方法可以把所有东西都装进我的桶里吗?我正在考虑使根文件夹公共,使用wget抓取它,然后再次使它私有,但我不知道是否有更简单的方法。
当前回答
如果您使用带有S3Fox的Firefox,它确实允许您选择所有文件(shift-选择第一个和最后一个),然后右键单击并下载所有文件。
我已经处理了500多个文件,没有任何问题。
其他回答
当在Windows,我的首选GUI工具这是CloudBerry Explorer免费软件 Amazon S3。它有一个相当精致的文件资源管理器和类似ftp的界面。
使用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)
正如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>
100%为我工作,我已经下载了所有的文件从aws s3备份。
安装AWS CLI。选择您的操作系统并按照以下步骤操作:安装或更新AWS CLI的最新版本 检查AWS版本:AWS——version
执行config命令:aws configure
Aws s3 cp s3://yourbucketname你的\本地\路径——递归
例如(Windows操作系统):aws s3 cp s3://yourbucketname C:\aws-s3-backup\project-name——recursive
请查看此链接:如何从S3下载整个存储桶到本地文件夹
您可以使用sync来下载整个S3桶。例如,下载当前目录下名为bucket1的整个桶。
aws s3 sync s3://bucket1 .