使用boto3将图像上传到AWS S3。单击URL即可下载

时间:2019-07-11 07:30:49

标签: python amazon-web-services amazon-s3 boto3

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。我该如何解决?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

因此,如果您在网址中添加/59.png,显然它将被下载。从网址中删除图片文件名称组件