Skip to content

Commit cbc6c59

Browse files
committed
add endpoint for exporting as downloadlink
1 parent 1f2125c commit cbc6c59

File tree

1 file changed

+22
-1
lines changed
  • services/storage/src/simcore_service_storage/api/_worker_tasks

1 file changed

+22
-1
lines changed

services/storage/src/simcore_service_storage/api/_worker_tasks/_simcore_s3.py

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,12 @@
1010
from models_library.progress_bar import ProgressReport
1111
from models_library.projects_nodes_io import StorageFileID
1212
from models_library.users import UserID
13-
from pydantic import TypeAdapter
13+
from pydantic import AnyUrl, TypeAdapter
1414
from servicelib.celery.models import TaskID
1515
from servicelib.logging_utils import log_context
1616
from servicelib.progress_bar import ProgressBarData
1717

18+
from ...constants import LinkType
1819
from ...dsm import get_dsm_provider
1920
from ...simcore_s3_dsm import SimcoreS3DataManager
2021

@@ -100,3 +101,23 @@ async def _progress_cb(report: ProgressReport) -> None:
100101
return await dsm.create_s3_export(
101102
user_id, object_keys, progress_bar=progress_bar
102103
)
104+
105+
106+
async def export_data_as_download_link(
107+
task: Task,
108+
task_id: TaskID,
109+
*,
110+
user_id: UserID,
111+
paths_to_export: list[PathToExport],
112+
) -> AnyUrl:
113+
s3_object = await export_data(
114+
task=task, task_id=task_id, user_id=user_id, paths_to_export=paths_to_export
115+
)
116+
117+
dsm = get_dsm_provider(get_app_server(task.app).app).get(
118+
SimcoreS3DataManager.get_location_id()
119+
)
120+
121+
return await dsm.create_file_download_link(
122+
user_id=user_id, file_id=s3_object, link_type=LinkType.PRESIGNED
123+
)

0 commit comments

Comments
 (0)