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 di un 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).
Caricare 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 installarla prima con
python3 -m pip install boto3
Dalla riga di comando, esporta l'access key ID e la secret key nelle appropriate variabili di ambiente:
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 sorgente 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 di ambiente al blocco env:
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
Se desideri utilizzare uno storage di oggetti compatibile con S3 diverso da AWS (ad es. GCP o per test locali), imposta la variabile di 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.