From c8d07af1f14fb6724a6305684e1fa31edd6fe849 Mon Sep 17 00:00:00 2001
From: Tom Teichler <tom.teichler@teckids.org>
Date: Fri, 16 Apr 2021 22:25:32 +0200
Subject: [PATCH] Allow backups to s3 storage

---
 aleksis/core/settings.py | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/aleksis/core/settings.py b/aleksis/core/settings.py
index 27be0d7a0..fe94ca0f0 100644
--- a/aleksis/core/settings.py
+++ b/aleksis/core/settings.py
@@ -504,6 +504,13 @@ DBBACKUP_CONNECTOR_MAPPING = {
     "django_prometheus.db.backends.postgresql": "dbbackup.db.postgresql.PgDumpConnector",
 }
 
+if _settings.get("backup.storage.type", "").lower() == "s3":
+    DBBACKUP_STORAGE = "storages.backends.s3boto3.S3Boto3Storage"
+
+    DBBACKUP_STORAGE_OPTIONS = {
+        key: value for (key, value) in _settings.get("backup.storage.s3").items()
+    }
+
 IMPERSONATE = {"USE_HTTP_REFERER": True, "REQUIRE_SUPERUSER": True, "ALLOW_SUPERUSER": True}
 
 DJANGO_TABLES2_TEMPLATE = "django_tables2/materialize.html"
@@ -785,7 +792,7 @@ MEDIABACKUP_CHECK_SECONDS = _settings.get("backup.media.check_seconds", 7200)
 
 PROMETHEUS_EXPORT_MIGRATIONS = False
 
-if _settings.get("storage.s3.enabled", False):
+if _settings.get("storage.type", "").lower() == "s3":
     INSTALLED_APPS.append("storages")
 
     DEFAULT_FILE_STORAGE = "storages.backends.s3boto3.S3Boto3Storage"
@@ -797,8 +804,8 @@ if _settings.get("storage.s3.enabled", False):
             "storage.s3.static.max_age_seconds", 24 * 60 * 60
         )
 
-    AWS_REGION = _settings.get("storage.s3.region", "")
-    AWS_ACCESS_KEY_ID = _settings.get("storage.s3.access_key_id", "")
+    AWS_REGION = _settings.get("storage.s3.region_name", "")
+    AWS_ACCESS_KEY_ID = _settings.get("storage.s3.access_key", "")
     AWS_SECRET_ACCESS_KEY = _settings.get("storage.s3.secret_key", "")
     AWS_SESSION_TOKEN = _settings.get("storage.s3.session_token", "")
     AWS_STORAGE_BUCKET_NAME = _settings.get("storage.s3.bucket_name", "")
-- 
GitLab