我注意到似乎没有从AWS管理控制台下载整个s3桶的选项。
有什么简单的方法可以把所有东西都装进我的桶里吗?我正在考虑使根文件夹公共,使用wget抓取它,然后再次使它私有,但我不知道是否有更简单的方法。
我注意到似乎没有从AWS管理控制台下载整个s3桶的选项。
有什么简单的方法可以把所有东西都装进我的桶里吗?我正在考虑使根文件夹公共,使用wget抓取它,然后再次使它私有,但我不知道是否有更简单的方法。
当前回答
当在Windows,我的首选GUI工具这是CloudBerry Explorer免费软件 Amazon S3。它有一个相当精致的文件资源管理器和类似ftp的界面。
其他回答
当在Windows,我的首选GUI工具这是CloudBerry Explorer免费软件 Amazon S3。它有一个相当精致的文件资源管理器和类似ftp的界面。
使用AWS S3 CLI下载:
aws s3 cp s3://WholeBucket LocalFolder --recursive
aws s3 cp s3://Bucket/Folder LocalFolder --recursive
要使用代码下载,请使用AWS SDK。
要使用GUI下载,请使用Cyberduck。
我使用了几种不同的方法将Amazon S3数据复制到本地机器,包括s3cmd,到目前为止最简单的方法是Cyberduck。
你所需要做的就是输入你的亚马逊凭证,然后使用简单的界面来下载、上传、同步你的存储桶、文件夹或文件。
在AWS CLI下使用该命令:
aws s3 cp s3://bucketname . --recursive
使用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)