diff --git a/pount/apps/iiif/storage_backends.py b/pount/apps/iiif/storage_backends.py index 1c2b67ce4023717807a97489015a0659d17c1282..3f45cafc0c172edbadd35922ff2661c4d952fd81 100644 --- a/pount/apps/iiif/storage_backends.py +++ b/pount/apps/iiif/storage_backends.py @@ -1,5 +1,15 @@ +from django.conf import settings + from pount.apps.api.storage_backends import MediaStorage class IIIFFileStorage(MediaStorage): - location = "iiif" + location = str(settings.CANTALOUPE_S3SOURCE_BASICLOOKUPSTRATEGY_PATH_PREFIX).rstrip("/") + + def get_default_settings(self): + default_settings = super().get_default_settings() + default_settings["access_key"] = settings.CANTALOUPE_S3SOURCE_ACCESS_KEY_ID + default_settings["secret_key"] = settings.CANTALOUPE_S3SOURCE_SECRET_KEY + default_settings["bucket_name"] = settings.CANTALOUPE_S3SOURCE_BASICLOOKUPSTRATEGY_BUCKET_NAME + default_settings["endpoint_url"] = settings.CANTALOUPE_S3SOURCE_ENDPOINT + return default_settings diff --git a/pount/apps/iiif/views.py b/pount/apps/iiif/views.py index 8a21ecc0ced9f0997783dbcc907a768957f31c25..bc175f7a159baaf2d567f441619402402626fdbb 100644 --- a/pount/apps/iiif/views.py +++ b/pount/apps/iiif/views.py @@ -1,5 +1,3 @@ -from os import environ - import urllib3 from django.conf import settings from django.contrib.auth import get_user_model @@ -56,7 +54,7 @@ ProxyView.get_request_headers = get_request_headers class IIIFProxyView(ProxyView): - upstream = environ.get("IIIF_UPSTREAM_URL", "http://localhost:8182/iiif/") + upstream = settings.CANTALOUPE_IIIF_UPSTREAM_URL add_x_forwarded = True def __init__(self, *args, **kwargs): diff --git a/pount/settings/common.py b/pount/settings/common.py index b707df131e8156f2d609bbc989f00feba9333565..c903d32de7a75ce52e8192085ab4d3fc21f87eb5 100644 --- a/pount/settings/common.py +++ b/pount/settings/common.py @@ -505,3 +505,14 @@ MONGODB_PASSWORD = environ.get("MONGODB_PASSWORD", "pount_dev") MONGODB_HOST = environ.get("MONGODB_HOST", "localhost") MONGODB_DATABASE = environ.get("MONGODB_DATABASE", "pount_dev") MONGODB_URI = f"mongodb://{MONGODB_USER}:{MONGODB_PASSWORD}@{MONGODB_HOST}/?retryWrites=true&w=majority&authSource={MONGODB_DATABASE}" + + +############## +# CANTALOUPE # +############## +CANTALOUPE_S3SOURCE_SECRET_KEY = environ.get("CANTALOUPE_S3SOURCE_SECRET_KEY", AWS_SECRET_ACCESS_KEY) +CANTALOUPE_S3SOURCE_ACCESS_KEY_ID = environ.get("CANTALOUPE_S3SOURCE_ACCESS_KEY_ID", AWS_ACCESS_KEY_ID) +CANTALOUPE_S3SOURCE_BASICLOOKUPSTRATEGY_BUCKET_NAME = environ.get("CANTALOUPE_S3SOURCE_BASICLOOKUPSTRATEGY_BUCKET_NAME", AWS_STORAGE_BUCKET_NAME) +CANTALOUPE_S3SOURCE_BASICLOOKUPSTRATEGY_PATH_PREFIX = environ.get("CANTALOUPE_S3SOURCE_BASICLOOKUPSTRATEGY_PATH_PREFIX", "iiif/") +CANTALOUPE_S3SOURCE_ENDPOINT = environ.get("CANTALOUPE_S3SOURCE_ENDPOINT", AWS_S3_ENDPOINT_URL) +CANTALOUPE_IIIF_UPSTREAM_URL = environ.get("CANTALOUPE_IIIF_UPSTREAM_URL", "http://localhost:8182/iiif/") diff --git a/pount/settings/dev.py b/pount/settings/dev.py index b7433718f1ef5a1d659bb7a1f644f8141b4b5d94..e845c06ed54efeff64be50ce7657b29696d581ff 100644 --- a/pount/settings/dev.py +++ b/pount/settings/dev.py @@ -73,5 +73,9 @@ REST_FRAMEWORK["DEFAULT_AUTHENTICATION_CLASSES"] = [ "rest_framework.authentication.SessionAuthentication", ] +############## +# CANTALOUPE # +############## +CANTALOUPE_S3SOURCE_BASICLOOKUPSTRATEGY_BUCKET_NAME = environ.get("CANTALOUPE_S3SOURCE_BASICLOOKUPSTRATEGY_BUCKET_NAME", AWS_STORAGE_BUCKET_NAME) icecream_install() diff --git a/pount/settings/preprod.py b/pount/settings/preprod.py index 27cf3f052afd44f095002110de67c1022c3990a9..a8500fcbb954a02cbe7deaa5a6f85b11deb9a26b 100644 --- a/pount/settings/preprod.py +++ b/pount/settings/preprod.py @@ -106,3 +106,9 @@ MONGODB_PASSWORD = "{{ mongodb_password }}" MONGODB_HOST = "{{ mongodb_host }}" MONGODB_DATABASE = "{{ mongodb_database }}" MONGODB_URI = f"mongodb://{MONGODB_USER}:{MONGODB_PASSWORD}@{MONGODB_HOST}/?retryWrites=true&w=majority&authSource={MONGODB_DATABASE}" + +############## +# CANTALOUPE # +############## +CANTALOUPE_S3SOURCE_BASICLOOKUPSTRATEGY_BUCKET_NAME = environ.get("CANTALOUPE_S3SOURCE_BASICLOOKUPSTRATEGY_BUCKET_NAME", "pount-iiif-pprd") +CANTALOUPE_IIIF_UPSTREAM_URL = environ.get("CANTALOUPE_IIIF_UPSTREAM_URL", "http://cantaloupe-pprd-1.srv.unistra.fr:8182/iiif/") diff --git a/pount/settings/prod.py b/pount/settings/prod.py index 86ca0a5bc8d1ac78e4f97091e207511f680f5446..c898c149f22404720ebb3a3db6c3af96cc66a8e1 100644 --- a/pount/settings/prod.py +++ b/pount/settings/prod.py @@ -106,3 +106,10 @@ MONGODB_PASSWORD = "{{ mongodb_password }}" MONGODB_HOST = "{{ mongodb_host }}" MONGODB_DATABASE = "{{ mongodb_database }}" MONGODB_URI = f"mongodb://{MONGODB_USER}:{MONGODB_PASSWORD}@{MONGODB_HOST}/?retryWrites=true&w=majority&authSource={MONGODB_DATABASE}" + + +############## +# CANTALOUPE # +############## +CANTALOUPE_S3SOURCE_BASICLOOKUPSTRATEGY_BUCKET_NAME = environ.get("CANTALOUPE_S3SOURCE_BASICLOOKUPSTRATEGY_BUCKET_NAME", "pount-iiif-prod") +CANTALOUPE_IIIF_UPSTREAM_URL = environ.get("CANTALOUPE_IIIF_UPSTREAM_URL", "http://cantaloupe-prod-1.srv.unistra.fr:8182/iiif/") diff --git a/pount/settings/test.py b/pount/settings/test.py index 624fcb777ab39dc131aae62433a2025f355ef812..e266d4f634f8e1c1bba5c9be7ae9032b824cbd52 100644 --- a/pount/settings/test.py +++ b/pount/settings/test.py @@ -120,3 +120,9 @@ REST_FRAMEWORK["DEFAULT_AUTHENTICATION_CLASSES"] = [ "rest_framework.authentication.TokenAuthentication", "rest_framework.authentication.SessionAuthentication", ] + +############## +# CANTALOUPE # +############## +CANTALOUPE_S3SOURCE_BASICLOOKUPSTRATEGY_BUCKET_NAME = environ.get("CANTALOUPE_S3SOURCE_BASICLOOKUPSTRATEGY_BUCKET_NAME", "pount-iiif-test") +CANTALOUPE_IIIF_UPSTREAM_URL = environ.get("CANTALOUPE_IIIF_UPSTREAM_URL", "http://cantaloupe-test-1.srv.unistra.fr:8182/iiif/")