def _new_img_obj(filename, height, storage, width): img_obj = Media() img_obj.file_name = filename img_obj.storage = storage img_obj.width = width img_obj.height = height img_obj.file_type = MediaType.IMAGE img_obj._id = save(img_obj) return img_obj
def save_media(media_stream, storage=None): if storage is None: storage = MediaStorage.LOCAL #store locally first filename = _gen_uuid() file_path = _store_locally(filename, media_stream) #save document record (as local first) media_obj = Media() media_obj.file_name = filename media_obj.storage = MediaStorage.LOCAL media_obj.file_type = MediaType.OTHERS media_obj._id = save(media_obj) #upload to s3, deferred/threaded if storage == MediaStorage.S3: t = multiprocessing.Process(target=_defer_store_s3, args=(file_path, filename, media_obj)) t.daemon = False t.start() return media_obj