Source code for openassembly.pirate_sources.backends
from multiprocessing import Pool
from StringIO import StringIO
import boto
from django.conf import settings
from ajaxuploader.backends.base import AbstractUploadBackend
from django.core.files.uploadedfile import InMemoryUploadedFile
import mimetypes
from pirate_sources.models import IMGSource
import PIL
[docs]class S3CustomBackend(AbstractUploadBackend):
[docs] def upload_chunk(self, chunk):
self.buffer.write(chunk)
[docs] def setup(self, filename):
self.buffer = StringIO()
[docs] def upload_complete(self, request, filename):
# Tie up loose ends, and finish the upload
#create an imgsource
try:
img = IMGSource()
self.buffer.seek(0)
mimetypes.init()
mime = mimetypes.guess_type(filename)
image = InMemoryUploadedFile(self.buffer, filename, filename, mime[0], self.buffer.len, None)
img.file = image
img.save()
self.buffer.close()
except Exception, e:
return {'pk': str(e)}
return {'pk': img.pk}