Я просто хочу загрузить изображение (JPG) с помощью формы, а затем отправить это изображение в Rackspace «Cloud Files» или Amazon «S3».
- Нет манипуляций с файлом.
- Нет сохранения на диск, все в память (размещено на облачном сервере)
- Размер изображения не будет превышать 75 КБ
Обновление (два предупреждения):
- Один: он также должен работать, когда данные публикуются из телефонного приложения.
- Два: его нужно отправить в Rackspace Cloud Files, а также на S3 (начиная с CF).
Приведенный ниже код работает, но он НАМНОГО тяжелый.
import cloudfiles as cf
def uploadImage(request, id):
cf_con = cf.get_connection(username='YYY', api_key='XXX', serviceNet=True)
container = cf_con.get_container('container_name')
file = request.FILES["item_photo"]
f = StringIO(file.read())
f = Image.open(f)
### Only works if I resize for some reason, otherwise uploads a broken file
image = f.resize((600,600), Image.ANTIALIAS)
o = StringIO()
image.save(o, "JPEG", quality=80)
image = o.getvalue()
file_name = "%s/%s" % (id, '600x600.jpeg')
### This simply uploads to Rackspace Cloud files.
put_file(container, file_name, image)
Большое спасибо, надеюсь, все хорошо ...
d.