diff --git a/mnemosyne/mnemosyne/views.py b/mnemosyne/mnemosyne/views.py index 97b6e3d..f715c45 100644 --- a/mnemosyne/mnemosyne/views.py +++ b/mnemosyne/mnemosyne/views.py @@ -58,17 +58,25 @@ def _check_s3() -> str | None: import botocore.exceptions from django.conf import settings + if getattr(settings, "USE_LOCAL_STORAGE", False): + return None + + opts = settings.STORAGES.get("default", {}).get("OPTIONS", {}) + bucket = opts.get("bucket_name", "") + if not bucket: + return "No S3 bucket configured" + try: client = boto3.client( "s3", - endpoint_url=settings.AWS_S3_ENDPOINT_URL or None, - aws_access_key_id=settings.AWS_ACCESS_KEY_ID or None, - aws_secret_access_key=settings.AWS_SECRET_ACCESS_KEY or None, - region_name=settings.AWS_S3_REGION_NAME or None, - use_ssl=getattr(settings, "AWS_S3_USE_SSL", True), - verify=getattr(settings, "AWS_S3_VERIFY", True), + endpoint_url=opts.get("endpoint_url") or None, + aws_access_key_id=opts.get("access_key") or None, + aws_secret_access_key=opts.get("secret_key") or None, + region_name=opts.get("region_name") or None, + use_ssl=opts.get("use_ssl", True), + verify=opts.get("verify", True), ) - client.head_bucket(Bucket=settings.AWS_STORAGE_BUCKET_NAME) + client.head_bucket(Bucket=bucket) return None except botocore.exceptions.ClientError as e: return f"HTTP {e.response['Error']['Code']}"