Django загрузить изображение - Из формы в Rackspace / S3 без каких-либо манипуляций

Я просто хочу загрузить изображение (JPG) с помощью формы, а затем отправить это изображение в Rackspace 'Cloud Files' или Amazon 'S3'.

  • Никаких манипуляций с файлом.
  • Без сохранения на диск, все в памяти (размещено на облачном сервере)
  • Размер изображения не превышает 75 Кб

Обновление (два предупреждения):

  • Первый: он также должен работать, когда данные отправляются из телефонного приложения.
  • Второй: его необходимо отправлять в файлы Rackspace Cloud, а также в 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)

Большое спасибо, Надеюсь, все в порядке ...

г.

5
задан Danny 2 August 2011 в 12:58
поделиться