fix(storage): use presigned URLs for private S3 buckets (7-day expiry)
This commit is contained in:
@@ -121,9 +121,12 @@ class S3Storage:
|
|||||||
k = _strip_prefix(key)
|
k = _strip_prefix(key)
|
||||||
if self.public_url:
|
if self.public_url:
|
||||||
return f"{self.public_url}/{k}"
|
return f"{self.public_url}/{k}"
|
||||||
# fallback: path-style URL from endpoint + bucket
|
# private bucket: generate presigned URL (7 days expiry)
|
||||||
ep = self._client._endpoint.host
|
return self._client.generate_presigned_url(
|
||||||
return f"{ep}/{self.bucket}/{k}"
|
"get_object",
|
||||||
|
Params={"Bucket": self.bucket, "Key": k},
|
||||||
|
ExpiresIn=604800,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
# ── Helpers ────────────────────────────────────────────────────────
|
# ── Helpers ────────────────────────────────────────────────────────
|
||||||
|
|||||||
Reference in New Issue
Block a user