首页 > 解决方案 > 使用 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。我该如何解决?

标签: pythonamazon-web-servicesamazon-s3boto3

解决方案


检查Content-Type文件的。您可以通过 AWS 控制台执行此操作(在存储桶中选择文件 -> 属性 -> 元数据)。它应该是image/png或类似的。您可以Content-Type在同一页面上手动设置,也可以在使用 boto 上传文件时进行设置:

s3bucket.put_object(Key='59.png', Body=data, ContentType='image/png')

推荐阅读