Hosting di file multimediali su S3¶
Invece di ospitare i file multimediali dell'albero genealogico sullo stesso server del database Gramps, possono anche essere ospitati su Amazon S3 o su un altro servizio di storage di oggetti compatibile con API. Questo riduce notevolmente i requisiti di archiviazione e traffico per il server Web di Gramps.
Preparazione delle credenziali¶
Nel tuo account AWS (o altro servizio di storage di oggetti), ottieni un access key ID e una secret access key (potresti prima voler creare un utente separato con una policy di sicurezza che consenta solo l'accesso a S3).
Caricamento dei file multimediali¶
Per caricare i tuoi file multimediali esistenti su S3, su Linux puoi utilizzare un'installazione locale di Gramps con l'Addon S3 Media Uploader, che puoi installare direttamente dal desktop di Gramps. Tuttavia, è necessaria una configurazione aggiuntiva.
L'addon utilizza la libreria Python boto3 sotto il cofano. Devi prima installarla con
python3 -m pip install boto3
Dalla riga di comando, esporta l'access key ID e la secret key nelle variabili d'ambiente appropriate:
export AWS_ACCESS_KEY_ID=my_access_key_id
export AWS_SECRET_ACCESS_KEY=my_secret_access_key
Ora puoi avviare l'uploader eseguendo il seguente comando,
gramps -O "My Family Tree" -a tool \
-p "name=s3uploader,bucket_name=my_bucket_name"
sostituendo "My Family Tree" con il nome del tuo albero genealogico e my_bucket_name con il nome completo del tuo bucket S3. Avrai bisogno di un bucket S3 dedicato per la tua istanza Gramps Web. Se il bucket non esiste ancora, l'Addon S3 Uploader tenterà di crearlo.
Configurare Gramps Web¶
Per utilizzare il nuovo bucket S3 come fonte multimediale per Gramps Web, imposta semplicemente l'opzione di configurazione MEDIA_BASE_DIR opzione di configurazione su s3://my_bucket_name.
Quando utilizzi Docker Compose, l'opzione più semplice è aggiungere tutte le variabili d'ambiente al blocco environment: del servizio grampsweb:
environment:
AWS_ACCESS_KEY_ID: my_access_key_id
AWS_SECRET_ACCESS_KEY: my_secret_access_key
GRAMPSWEB_MEDIA_BASE_DIR: s3://my_bucket_name
AWS_DEFAULT_REGION: eu-central-1
Nota che solo l'opzione di configurazione di Gramps Web porta il prefisso GRAMPSWEB_; le variabili AWS_* vengono lette direttamente dalla libreria boto3 sottostante e devono rimanere senza prefisso.
Se desideri utilizzare uno storage di oggetti compatibile con S3 diverso da AWS (ad es. GCP o per test locali), imposta la variabile d'ambiente AWS_ENDPOINT_URL.
Sincronizzazione dei file multimediali¶
Per mantenere i file multimediali sincronizzati tra un'installazione locale di Gramps e i file multimediali di Gramps Web ospitati su S3, l'Addon Gramps Web Sync supporta la sincronizzazione dei file tramite l'API Web.