图像错误,未加载 S3 图像检索
Posted
技术标签:
【中文标题】图像错误,未加载 S3 图像检索【英文标题】:Image error, not loading for S3 image retrieval 【发布时间】:2020-07-24 16:15:26 【问题描述】:我已经在我的后端(托管在 Elastic Beanstalk 上)编写了代码,以从 S3 存储桶中检索文件并将其以不同的名称保存回存储桶。我正在使用 boto3 并创建了一个名为“s3”的 s3 客户端。
bucketname
是bucket的名字,keyname
是key的名字。我也在使用tempfile
模块
tmp = tempfile.NamedTemporaryFile()
with open(tmp.name, 'wb') as f:
s3.download_fileobj(bucketname, keyname, f)
s3.upload_file(tmp, bucketname, 'fake.jpg')
我想知道我的理解是否错误(仍在调试为什么会出现错误) - 我创建了一个 tempfile
并在其中打开并保存了带有 keyname
和 bucketname
的对象的内容。然后我以不同的名称将该临时文件上传到存储桶。我的推理正确吗?
【问题讨论】:
【参考方案1】:upload_file()
命令在第一个参数中需要一个文件名(作为 string
),不是file
对象。
您应该使用upload_fileobj()
。
但是,我会推荐一些不同的东西......
如果你只是想复制一个对象,你可以使用copy_object
:
response = client.copy_object(
Bucket='destinationbucket',
CopySource='/sourcebucket/HappyFace.jpg',
Key='HappyFaceCopy.jpg',
)
【讨论】:
以上是关于图像错误,未加载 S3 图像检索的主要内容,如果未能解决你的问题,请参考以下文章
错误 java.sql.SQLException:从数据库中检索 Blob(图像)时 SQLite JDBC 驱动程序未实现