in airavata_django_portal_sdk/user_storage/api.py [0:0]
def save_input_file(request, file, name=None, content_type=None, storage_resource_id=None):
"""Save input file in staging area for input files."""
if remoteapi.is_remote_api_configured():
if name is None and hasattr(file, 'name'):
name = os.path.basename(file.name)
files = {'file': (name, file, content_type)
if content_type is not None else (name, file)}
resp = remoteapi.call(request,
"/upload",
method="post",
files=files)
data = resp.json()
product_uri = data['data-product']['productUri']
data_product = request.airavata_client.getDataProduct(
request.authz_token, product_uri)
return data_product
else:
backend = get_user_storage_provider(request, storage_resource_id=storage_resource_id)
file_name = name if name is not None else os.path.basename(file.name)
storage_resource_id, resource_path = backend.save(
TMP_INPUT_FILE_UPLOAD_DIR, file, name=file_name)
data_product = _save_data_product(
request, resource_path, storage_resource_id, name=file_name, content_type=content_type, backend=backend
)
return data_product