【发布时间】:2020-02-19 07:34:15
【问题描述】:
我正在尝试使用 Python 将 base64 图像上传到 S3 存储桶。
我用谷歌搜索并得到了一些答案,但没有一个对我有用。有些答案使用 boto 而不是 boto3,因此它们对我没用。
我也试过这个链接:Boto3: upload file from base64 to S3 但它对我不起作用,因为Object 方法对于 s3 是未知的。
以下是我目前的代码:
import boto3
s3 = boto3.client('s3')
filename = photo.personId + '.png'
bucket_name = 'photos-collection'
dataToPutInS3 = base64.b64decode(photo.url[23:])
将此变量dataToPutInS3数据上传到s3存储桶并从中获取url的正确方法是什么?
【问题讨论】:
-
你没有
s3.Object的原因是你使用boto3.client('s3')而不是像例子中的boto3.resource('s3')。 -
@dmigo 感谢您指出这一点,我根据您的意见更新了我的答案。
-
@Karan Sharma 对你有用吗?
-
嗨@AmitBaranes我已经使用了代码但是,在将对象放入S3存储桶时出现以下错误:“原因”:“调用GetBucketLocation操作时发生错误(AccessDenied):访问被拒绝”早些时候,对于 putObject,我遇到了相同的 Access Denied 错误,但在更新 iamRoleStatements: for putObject 之后,该错误已解决。你有什么想法,如何解决 GetBucketLocation Access Denied 问题。 ?
-
使用此
s3:GetBucketLocation更新您的 iam 角色操作
标签: python python-3.x amazon-web-services amazon-s3 boto3