21 lines
656 B
Python
21 lines
656 B
Python
import logging
|
|
from datetime import timedelta
|
|
|
|
from django.conf import settings
|
|
|
|
from utils.clients.minio_client import minio_client
|
|
|
|
logger = logging.getLogger('winofy.media')
|
|
|
|
|
|
def presigned_media_url(object_key, expires=timedelta(hours=1)):
|
|
"""Mints a fresh presigned GET URL for a stored MinIO object_key, or None if unset/unreachable."""
|
|
if not object_key:
|
|
return None
|
|
try:
|
|
return minio_client.presigned_get_object(
|
|
settings.MINIO_BUCKET_NAME, object_key, expires=expires,
|
|
)
|
|
except Exception:
|
|
logger.exception('Failed to presign media url for object_key=%s', object_key)
|
|
return None
|