I simply want to upload an image (JPG) using a form, then send that image to Rackspace 'Cloud Files' or Amazon 'S3'.
- No manipulating the file.
- No saving to disk, everything to memory (am hosted on a cloud server)
- Image size won't exceed 75kb
Update (Two Caveats):
- One: It also needs to work when data is posted from a phone app.
- Two: It needs to be sent to Rackspace Cloud Files as well as S3 (starting with CF).
The code below works but it is way WAY too heavy.
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)
Thanks so much, Hope all is well ...
d.