Я беру загруженные файлы, которые могу сохранить в S3, используя SimpleS3:
from simples3.bucket import S3Bucket
upload = request.POST['image']
s = S3Bucket("cdn", s3.access_key, s3.secret_key)
s.put(upload.filename, upload.file.read())
Где-то между сохранением этого файла и его загрузкой я сохраняю файл, представляющий собой изображение в виде миниатюры, используя PIL или Imagemagick, в зависимости от типа загруженного файла изображения. Процесс превращения файла в изображение. У меня вопрос, как мне открыть это изображение в виде файла? Я пытаюсь загрузить миниатюру в Amazon S3 точно так же, как и выше. Мой код ниже - идея того, что я пытаюсь сделать:
thumb = self._im.copy() #where _im is the Image
s = S3Bucket("cdn", s3.access_key, s3.secret_key)
s.put(self.filename+ext, thumb)
Я пытался безуспешно:
f = open(thumb, "rb")
s.put(self.filename+ext, f.read()
Что работает, но невероятно неэффективно, записывает файл на диск с помощью функции Image.save, а затем открывает его как файл:
thumb.save(self.filename+ext)
f = open(self.filename+ext, 'r')
s.put(self.filename+ext, f.read())