From 879581bb32fda8362f0bee6223ca35bf8a4738ed Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 8 Jul 2026 09:50:34 +0000 Subject: [PATCH] =?UTF-8?q?Stream=20a=20local=20file=20to=20S3=20with=20ma?= =?UTF-8?q?naged=20multipart=20upload=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 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/infrastructure/s3/s3_client.py b/infrastructure/s3/s3_client.py index 7e26c790b..5d5dc55ae 100644 --- a/infrastructure/s3/s3_client.py +++ b/infrastructure/s3/s3_client.py @@ -25,7 +25,8 @@ class S3Client: """Upload a file from local disk, using boto's managed transfer so a large object (a multi-GB Download Package ZIP, ADR-0060) is streamed in multipart from ``/tmp`` rather than held in memory.""" - raise NotImplementedError + self._client.upload_file(Filename=local_path, Bucket=self._bucket, Key=key) + return f"s3://{self._bucket}/{key}" def generate_presigned_url(self, key: str, expires_in: int) -> str: """A time-limited URL that lets the holder GET this object without AWS