Сохранение в S3, но файл пуст - PullRequest
0 голосов
/ 09 февраля 2012

Я использовал этот ответ для загрузки PNG на S3:

https://stackoverflow.com/a/6693577/815878

Файл загружается на S3, однако каждый раз, когда я дважды нажимаю на изображение, чтобы отобразить его URL"about: blank", а экран пустой.

Когда я загружаю изображение, оно отображается на моем компьютере как сохраненное изображение.Моим последним выходом было вручную проверить URL.Я сделал фотографию общедоступной, а затем попытался:

https://s3.amazonaws.com/BUCKET_NAME/IMAGE_NAME.png

, что дает мне это:

enter image description here

Есть ли еще один шаг из приведенного выше ответа, который делает файлзагрузить неправильно?Я собираюсь вставить свой код (который очень похож на ссылку выше) на всякий случай ...

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(out_im2.getvalue())

Ответы [ 2 ]

3 голосов
/ 09 февраля 2012

Я больше PHP, чем парень по Python, но из того, что я знаю, Amazon S3 требует определения типа файла.

Вам необходимо отправить mime-тип (например, image / png) длясервер для распознавания файла, так как S3 не является реальным веб-сервером, он не заботится о расширении вашего файла.Вы можете так же назвать его «dipididoo.moo», и пока тип является image / png, он будет работать.

1 голос
/ 08 сентября 2012

Установите mimetype, как показано ниже:

k.set_contents_from_filename(out_im2.getvalue(), {'Content-Type' : 'image/png'})
...