def process_uploaded_files(files, user): gateway = _init_processor()[0] logging.debug(str(gateway)) # pick all files that are send in this API # support sending multiple files in a single request for key, the_file in files.iteritems(): content_type = the_file.content_type if content_type == 'application/octet-stream': content_type = guess_mime_type(the_file.name) asset_class = models.manager(models.AssetClass).get( name = models.AssetClass.UPLOAD) if not asset_class.has_consumers(content_type): raise HttpRequestValidationError( 'Unsupported content type: %s' % content_type) upload = operations.create_asset_from_stream( data_stream = StringIO(the_file.read()), owner = user, producer = gateway, asset_class = models.AssetClass.UPLOAD, file_name = the_file.name, child_number = 0, mime_type = content_type) operations.publish_work_item(upload)
def create_asset_from_file(file_name, **kwargs): """ Create a page view work item on the output channel (given by name) from the contents of the file denoted by path. """ kwargs = kwargs.copy() kwargs.setdefault('orig_file_name', os.path.basename(file_name)) kwargs.setdefault('mime_type', misc.guess_mime_type(file_name)) logging.info(kwargs) asset = manager(Asset).create(**kwargs) upload_asset_file(asset, file_name) return asset
def create_asset_from_file( file_name, **kwargs ): """ Create a page view work item on the output channel (given by name) from the contents of the file denoted by path. """ kwargs = kwargs.copy() kwargs.setdefault('orig_file_name', os.path.basename(file_name)) kwargs.setdefault('mime_type', misc.guess_mime_type(file_name)) logging.info(kwargs) asset = manager(Asset).create(**kwargs) upload_asset_file( asset, file_name) return asset