python - 通过将凭据作为参数传递,使用 boto3 从 S3 Bucket 下载文件

标签 python python-3.x amazon-s3 aws-sdk boto3

根据 Boto3 官方文档,我们可以通过将凭据作为参数传递来连接 S3 存储桶。但我面临着问题。

工作场景:硬编码 key ID 和 secret key

s3r = boto3.resource('s3', aws_access_key_id='XXXXXXXXXXXXXXXXXXXX',
    aws_secret_access_key='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
buck = s3r.Bucket('bucket name')
buck.download_file(filename,filename)

非工作场景:作为参数传递
AccessKey = 'XXXXXXXXXXXXXXXXXXXX'
SecretKey = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
s3r = boto3.resource('s3', aws_access_key_id=AccessKey, aws_secret_access_key=SecretKey)
buck = s3r.Bucket('bucket name')
buck.download_file(filename,filename)

对于非工作场景,我面临以下错误。
botocore.exceptions.ClientError: An error occurred (403) when calling the HeadObject operation: Forbidden

最佳答案

http://boto3.readthedocs.io/en/latest/guide/configuration.html

session = boto3.Session(aws_access_key_id=AccessKey, aws_secret_access_key=SecretKey)
s3 = session.resource('s3')

关于python - 通过将凭据作为参数传递,使用 boto3 从 S3 Bucket 下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38888392/

相关文章:

python - 命令与子进程

python - 为什么 Python 类定义不能为自身分配一个闭包变量?

django - 不可压缩文件错误: 'scripts/app.js' isn't accessible via COMPRESS_URL ('http://my-bucket.s3-us-west-2.amazonaws.com/' ) and can't be compressed

python - 我怎样才能把这个文本文件转换成Python字典?

python - 数据框生成自己的列名

python-3.x - 代码不会要求用户输入?

python - 使用 opencv-python 在 Windows 中禁用网络摄像头的自动对焦

python - 使用 BeautifulSoup 在 Python 中循环 Href

node.js - 在 Mongo GridFS 或 Amazon S3 中存储图像哪个更快?

amazon-web-services - 如何从亚马逊的请求者支付桶下载数据?