Добавить метаданные для загрузки изображения на S3 с Python - PullRequest
6 голосов
/ 10 февраля 2012

Я успешно добавляю изображение в корзину на 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 ]

14 голосов
/ 10 февраля 2012

Вот как работает код загрузки моего изображения (с помощью boto):

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

Ну, по крайней мере, часть этого.

0 голосов
/ 22 мая 2014

Я обнаружил, что установка метаданных перед вами 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...