python - 使用 boto3 将图像上传到 AWS S3。单击 URL 时会下载它
问题描述
import boto3
s3 = boto3.client('s3')
bucketName = "player-img"
file = '59.png'
s3 = boto3.resource('s3')
object_acl = s3.ObjectAcl(bucketName,file)
response = object_acl.put(ACL='public-read')
这就是我上传名为59.png
我的存储桶的图像的方式。但是,当我单击 URL ( https://player-img.s3-us-west-1.amazonaws.com/59.png
) 时,它会被下载而不是转到图像 URL。我该如何解决?
解决方案
检查Content-Type
文件的。您可以通过 AWS 控制台执行此操作(在存储桶中选择文件 -> 属性 -> 元数据)。它应该是image/png
或类似的。您可以Content-Type
在同一页面上手动设置,也可以在使用 boto 上传文件时进行设置:
s3bucket.put_object(Key='59.png', Body=data, ContentType='image/png')
推荐阅读
- elixir - 混合 cmd 别名的引用和转义
- sql - 如何计算运行总计?
- python - 解析 .txt 文件并在 python 中写入 excel
- javascript - 如何在 Vue.js 和 WordPress 中使用多个过滤器进行分页(或延迟加载无限滚动)
- c++ - ANTLR4 在某台机器上找不到任何令牌,但在我的具有相同输入文件的情况下工作正常
- odata - NavigationProperty 的简单选择下拉菜单
- php - 在 ASP.NET 表单中调用 PHP 脚本
- php - Keycloak 密码策略
- tensorflow - 在 Keras 中跨两个并行层的反向传播
- angular - 未调用 Spied 函数