feat: upload resource
This commit is contained in:
@@ -40,6 +40,20 @@ def resource_payload(
|
|||||||
resource: DataResources,
|
resource: DataResources,
|
||||||
storage_object: StorageObjects,
|
storage_object: StorageObjects,
|
||||||
) -> dict[str, Any]:
|
) -> dict[str, Any]:
|
||||||
|
# The Jupyter-side path: storage_object.object_key is stored as
|
||||||
|
# "workspace/{ws_id}/{user_id}/{ulid}{ext}" and Jupyter's root_dir is
|
||||||
|
# "/workspace/{ws_id}", so Jupyter sees the file at
|
||||||
|
# "{user_id}/{ulid}{ext}". Strip the workspace/{ws_id}/ prefix so the
|
||||||
|
# frontend can render a copy-pasteable Jupyter path.
|
||||||
|
workspace_prefix = f"workspace/{resource.workspace_id}/"
|
||||||
|
if storage_object.object_key and storage_object.object_key.startswith(
|
||||||
|
workspace_prefix
|
||||||
|
):
|
||||||
|
jupyter_accessible_path = storage_object.object_key[
|
||||||
|
len(workspace_prefix) :
|
||||||
|
]
|
||||||
|
else:
|
||||||
|
jupyter_accessible_path = storage_object.object_key
|
||||||
return {
|
return {
|
||||||
"resource_id": resource.resource_id,
|
"resource_id": resource.resource_id,
|
||||||
"workspace_id": resource.workspace_id,
|
"workspace_id": resource.workspace_id,
|
||||||
@@ -59,6 +73,7 @@ def resource_payload(
|
|||||||
"content_hash": storage_object.content_hash,
|
"content_hash": storage_object.content_hash,
|
||||||
"object_status": storage_object.object_status,
|
"object_status": storage_object.object_status,
|
||||||
},
|
},
|
||||||
|
"jupyter_accessible_path": jupyter_accessible_path,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user