Amazon web services 如何用python从AWS下载数据

Amazon web services 如何用python从AWS下载数据,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,我是AWS和boto的新手。我想下载的数据在AWS上,我有访问密钥和密钥。我的问题是我不理解我找到的方法。例如,此代码: import boto import boto.s3.connection def download_data_connect_s3(access_key, secret_key, region, bucket_name, key, local_path): conn = boto.connect_s3(aws_access_key_id = access_key,\

我是AWS和boto的新手。我想下载的数据在AWS上,我有访问密钥和密钥。我的问题是我不理解我找到的方法。例如,此代码:

import boto
import boto.s3.connection
def download_data_connect_s3(access_key, secret_key, region, bucket_name, key, local_path):
    conn = boto.connect_s3(aws_access_key_id = access_key,\
        aws_secret_access_key = secret_key,\
        host='s3-{}.amazonaws.com'.format(region),\
        calling_format = boto.s3.connection.OrdinaryCallingFormat()\
        )

    bucket = conn.get_bucket(bucket_name)
    key = bucket.get_key(key)
    key.get_contents_to_filename(local_path)
    print('Downloaded File {} to {}'.format(key, local_path))

region = 'us-west-1'
access_key = # the key here
secret_key = # the secret key here
bucket_name = 'temp_name'
key = '<folder…/filename>' unique identifer
local_path = # local path

download_data_connect_s3(access_key, secret_key, region, bucket_name, key, local_path)
我不明白的是“密钥”“bucket\u name”和“local path”。与访问密钥和秘密密钥相比,“密钥”是什么?我没有得到“钥匙”。另外,“bucket_name”是AWS上的bucket名称吗?我没有提供bucket名称;本地路径—我要保存数据的目录?

你说得对

bucket\u name=S3存储桶的名称

key=是对象键。它是存储桶中文件的完整路径。例如:在文件夹x中有一个名为a.txt的文件,所以key=x/a.txt。指


local_path=您希望在本地计算机中保存数据的位置

听起来数据存储在Amazon S3中

您可以使用访问AmazonS3

要查看该帐户中的存储桶列表,请执行以下操作:

aws s3 ls
要查看存储桶的内容,请执行以下操作:

aws s3 ls bucket-name
要将文件从bucket复制到当前目录,请执行以下操作:

aws s3 cp s3://bucket-name/filename.txt .
或同步整个文件夹:

aws s3 sync s3://bucket-name/folder/ local-folder/

这是否意味着我需要创建自己的bucket来将数据下载到?您是否拥有该文件,或者您知道该文件在哪里?我不知道,我只获得了访问密钥和密钥,并且被告知数据在AWS上。所以bucket name是我要下载的数据bucket的名称,而不是控制台上的bucket,对吗?那么,数据bucket不存在于您的AWS帐户中?为了从S3下载文件,您需要3件事。数据桶、s3对象密钥中的文件路径和您的访问密钥具有获取对象的权限