我有一些数据存储在一个AWS
S3
存储桶中。
如果从终端我做:
aws s3 ls s3://myBucket/folder/ --profile myProfile
2020-04-23 01:04:09 96858539 2020-01-01-file.csv.gz
如果我尝试使用下载文件 boto3
import boto3
session = boto3.session.Session(profile_name='myProfile')
s3 = boto3.resource('s3')
f1 = '2020-01-01-file.csv.gz'
s3.meta.client.download_file('myBucket', 'folder/%s'%f1, f1)
我收到以下错误
ClientError: An error occurred (403) when calling the HeadObject operation: Forbidden
它对您不起作用的原因是您创建了 boto3session
session = boto3.session.Session(profile_name='myProfile')
而你不使用它。所以,而不是boto3.resource('s3')
,应该尝试session.resource('s3')
但无论如何,boto3 文档有一整个部分称为Downloading Files。它显示了两个带有解释的示例:
import boto3
s3 = boto3.client('s3')
s3.download_file('BUCKET_NAME', 'OBJECT_NAME', 'FILE_NAME')
要么
s3 = boto3.client('s3')
with open('FILE_NAME', 'wb') as f:
s3.download_fileobj('BUCKET_NAME', 'OBJECT_NAME', f)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句