Hosting von Mediendateien auf S3¶
Anstatt die Mediendateien des Stammbaums auf demselben Server wie die Gramps-Datenbank zu hosten, können sie auch auf Amazon S3 oder einem anderen API-kompatiblen Objektspeicherdienst gehostet werden. Dies reduziert die Speicher- und Verkehrsanforderungen für den Gramps-Webserver erheblich.
Vorbereitung der Anmeldeinformationen¶
Holen Sie sich in Ihrem AWS (oder einem anderen Objektspeicherdienst) Konto eine Zugangs-Schlüssel-ID und geheinen Zugangs-Schlüssel (Sie möchten möglicherweise zuerst einen separaten Benutzer mit einer Sicherheitsrichtlinie erstellen, die nur den Zugriff auf S3 erlaubt).
Mediendateien hochladen¶
Um Ihre vorhandenen Mediendateien nach S3 hochzuladen, können Sie unter Linux eine lokale Gramps-Installation mit dem S3 Media Uploader Addon verwenden, das Sie direkt von Gramps Desktop aus installieren können. Es ist jedoch eine zusätzliche Konfiguration erforderlich.
Das Addon verwendet die boto3 Python-Bibliothek im Hintergrund. Sie müssen es zuerst mit folgendem Befehl installieren:
python3 -m pip install boto3
Exportieren Sie in der Befehlszeile die Zugangs-Schlüssel-ID und den geheimen Schlüssel in die entsprechenden Umgebungsvariablen:
export AWS_ACCESS_KEY_ID=my_access_key_id
export AWS_SECRET_ACCESS_KEY=my_secret_access_key
Jetzt können Sie den Uploader starten, indem Sie den folgenden Befehl ausführen:
gramps -O "Mein Stammbaum" -a tool \
-p "name=s3uploader,bucket_name=my_bucket_name"
Ersetzen Sie "Mein Stammbaum" durch den Namen Ihres Stammbaums und my_bucket_name durch den vollständigen Namen Ihres S3-Buckets. Sie benötigen einen dedizierten S3-Bucket für Ihre Gramps-Webinstanz. Wenn der Bucket noch nicht existiert, wird das S3 Uploader Addon versuchen, ihn zu erstellen.
Gramps Web konfigurieren¶
Um den neuen S3-Bucket als Medienquelle für Gramps Web zu verwenden, setzen Sie einfach die MEDIA_BASE_DIR Konfigurationsoption auf s3://my_bucket_name.
Wenn Sie Docker Compose verwenden, ist die einfachste Option, alle Umgebungsvariablen zum env-Block hinzuzufügen:
env:
AWS_ACCESS_KEY_ID: my_access_key_id
AWS_SECRET_ACCESS_KEY: my_secret_access_key
MEDIA_BASE_DIR: s3://my_bucket_name
AWS_DEFAULT_REGION: eu-central-1
Wenn Sie einen S3-kompatiblen Objektspeicher verwenden möchten, der nicht von AWS stammt (z. B. GCP oder für lokale Tests), setzen Sie die Umgebungsvariable AWS_ENDPOINT_URL.
Synchronisierung von Mediendateien¶
Um Mediendateien zwischen einer lokalen Gramps-Installation und auf S3 gehosteten Gramps-Web-Mediendateien synchron zu halten, unterstützt das Gramps Web Sync Addon die Dateisynchronisierung über die Web-API.