From 62b7823fe35e8d3f146c3dbcd0dc03819230b797 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20M=C3=BCller?= Date: Thu, 22 Feb 2024 10:28:56 +0100 Subject: [PATCH] enh: return S3 URL in s3cc.upload_artifact --- CHANGELOG | 2 ++ dcor_shared/s3cc.py | 3 ++- tests/test_s3cc.py | 7 ++++--- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 38c34d2..54f51c2 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,5 @@ +0.7.5 + - enh: return S3 URL in s3cc.upload_artifact 0.7.4 - fix: disable basins when loading a dataset instance - enh: implement s3cc.upload_artifact diff --git a/dcor_shared/s3cc.py b/dcor_shared/s3cc.py index cc23ff8..d491c62 100644 --- a/dcor_shared/s3cc.py +++ b/dcor_shared/s3cc.py @@ -203,10 +203,11 @@ def upload_artifact( private = ds_dict["private"] rid = resource_id - s3.upload_file( + s3_url = s3.upload_file( bucket_name=bucket_name, object_name=f"{artifact}/{rid[:3]}/{rid[3:6]}/{rid[6:]}", path=path_artifact, sha256=sha256 or sha256sum(path_artifact), private=private, override=override) + return s3_url diff --git a/tests/test_s3cc.py b/tests/test_s3cc.py index 30b562e..a74af12 100644 --- a/tests/test_s3cc.py +++ b/tests/test_s3cc.py @@ -173,9 +173,10 @@ def test_upload_artifact(enqueue_job_mock, tmp_path): path_fake_preview = tmp_path / "test_preview.jpg" path_fake_preview.write_text("This is not a real image!") # upload the preview - s3cc.upload_artifact(rid, - path_artifact=path_fake_preview, - artifact="preview") + s3_url2 = s3cc.upload_artifact(rid, + path_artifact=path_fake_preview, + artifact="preview") + assert s3_url == s3_url2.replace("preview", "resource") # make sure that worked assert s3cc.artifact_exists(rid, "preview") # attempt to download the private artifact