使用Python向S3图像上传添加元数据

7 投票
2 回答
4030 浏览
提问于 2025-04-17 12:43

我已经成功地把一张图片上传到S3的一个存储桶里,但我现在遇到一个问题,就是不知道怎么把内容类型设置为'image/png'。下面是我的代码:

image = Image.open(self.image)
conn = S3Connection(settings.AWS_ACCESS_KEY_ID, settings.AWS_SECRET_ACCESS_KEY)     
out_im2 = cStringIO.StringIO()
image.save(out_im2, 'PNG')
b = conn.get_bucket('new_test_bucket')
k = b.new_key(self.title+'.png')
k.set_contents_from_filename(str(self.image))

现在上传的内容类型是'application/octet-stream'。

2 个回答

0

我发现,在你使用 set_contents_from_file 之前先设置元数据对我来说是有效的。不过我是在使用GCS,也许这会有所不同……

bucket = conn.get_bucket('plots')
k = bucket.new_key('000006')
k.set_metadata('Content-Type', 'image/png')
k.set_contents_from_stream(buff)
14

这是我用boto上传图片的代码是怎么工作的:

k.set_metadata('Content-Type', mime)
k.set_contents_from_file(data, policy='public-read')
k.set_acl('public-read')

嗯,这只是其中的一部分。

撰写回答