Gå til indholdet

Hosting af mediefiler på S3

I stedet for at hoste mediefilerne til slægtsforskningen på den samme server som Gramps-databasen, kan de også hostes på Amazon S3 eller en anden API-kompatibel objektlagringstjeneste. Dette reducerer kraftigt lager- og trafikbehovene for Gramps Web-serveren.

Forberedelse af legitimationsoplysninger

I din AWS (eller anden objektlagringstjeneste) konto, få en access key ID og secret access key (du vil måske først oprette en separat bruger med en sikkerhedspolitik, der kun tillader adgang til S3).

Upload af mediefiler

For at uploade dine eksisterende mediefiler til S3, kan du på Linux bruge en lokal Gramps-installation med S3 Media Uploader Addon, som du kan installere direkte fra Gramps desktop. Dog er der behov for en ekstra konfiguration.

Addon'en bruger boto3 Python-biblioteket under motorhjelmen. Du skal installere det først med

python3 -m pip install boto3

På kommandolinjen, eksportér access key ID og secret key til de relevante miljøvariabler:

export AWS_ACCESS_KEY_ID=my_access_key_id
export AWS_SECRET_ACCESS_KEY=my_secret_access_key

Nu kan du starte uploaderen ved at køre følgende kommando,

gramps -O "My Family Tree" -a tool \
    -p "name=s3uploader,bucket_name=my_bucket_name"

erstatte "My Family Tree" med navnet på din slægtsforskning og my_bucket_name med det fulde navn på din S3-bucket. Du vil have brug for en dedikeret S3-bucket til din Gramps Web-instans. Hvis bucketen endnu ikke eksisterer, vil S3 Uploader Addon forsøge at oprette den.

Konfigurere Gramps Web

For at bruge den nye S3-bucket som mediekilde til Gramps Web, skal du blot indstille MEDIA_BASE_DIR konfigurationsmuligheden til s3://my_bucket_name.

Når du bruger Docker Compose, er den nemmeste mulighed at tilføje alle miljøvariabler til env blokken:

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

Hvis du vil bruge en S3-kompatibel objektlagring, der ikke er AWS (f.eks. GCP eller til lokal testning), skal du indstille miljøvariablen AWS_ENDPOINT_URL.

Synchronisering af mediefiler

For at holde mediefiler synkroniseret mellem en lokal Gramps-installation og S3-hostede Gramps Web mediefiler, understøtter Gramps Web Sync Addon filsynkronisering via Web API.