图像错误,未加载 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 并在其中打开并保存了带有 keynamebucketname 的对象的内容。然后我以不同的名称将该临时文件上传到存储桶。我的推理正确吗?

【问题讨论】:

【参考方案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 驱动程序未实现

使用 Node JS 从 Amazon S3 私有存储桶中检索图像

从 C# 应用程序检索 sql 图像时出错

使用 readAsDataURL 加载后如何检索图像尺寸?

图像未从文档目录中检索

Github 页面,图像无法加载 - 服务器以 404 响应图像检索