From da3e0cd4b4a37b1396e3ad179835876358fa4e18 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 8 Jul 2026 09:18:54 +0000 Subject: [PATCH] =?UTF-8?q?Generate=20a=20presigned=20GET=20URL=20for=20an?= =?UTF-8?q?=20S3=20object=20=F0=9F=9F=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- infrastructure/s3/s3_client.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/infrastructure/s3/s3_client.py b/infrastructure/s3/s3_client.py index f07779351..eb2a68f5c 100644 --- a/infrastructure/s3/s3_client.py +++ b/infrastructure/s3/s3_client.py @@ -25,4 +25,9 @@ class S3Client: """A time-limited URL that lets the holder GET this object without AWS credentials (ADR-0060 — how a Download Package link is delivered). ``expires_in`` is the validity window in seconds.""" - raise NotImplementedError + url: str = self._client.generate_presigned_url( + "get_object", + Params={"Bucket": self._bucket, "Key": key}, + ExpiresIn=expires_in, + ) + return url