Hyppää sisältöön

Mediatuotteiden isännöinti S3:ssa

Sen sijaan, että perhepuun mediatuotteet isännöitäisiin samalla palvelimella kuin Gramps-tietokanta, ne voidaan myös isännöidä Amazon S3:ssa tai muussa API-yhteensopivassa objektivarastointipalvelussa. Tämä vähentää merkittävästi Gramps Web -palvelimen tallennus- ja liikennetarpeita.

Todennusten valmistelu

AWS (tai muu objektivarastointipalvelu) -tililläsi, hanki access key ID ja secret access key (haluat ehkä ensin luoda erillisen käyttäjän, jolla on turvallisuuspolitiikka, joka sallii vain pääsyn S3:een).

Mediatuotteiden lataaminen

Ladataaksesi olemassa olevat mediatuotteesi S3:een, voit Linuxilla käyttää paikallista Gramps-asennusta S3 Media Uploader -lisäosalla, jonka voit asentaa suoraan Gramps-työpöydältä. Joitakin lisäasetuksia kuitenkin tarvitaan.

Lisäosa käyttää taustalla boto3 Python-kirjastoa. Sinun on asennettava se ensin komennolla

python3 -m pip install boto3

Komentorivillä vie access key ID ja salainen avain oikeisiin ympäristömuuttujiin:

export AWS_ACCESS_KEY_ID=my_access_key_id
export AWS_SECRET_ACCESS_KEY=my_secret_access_key

Nyt voit käynnistää lataustyökalun suorittamalla seuraavan komennon,

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

korvaten "My Family Tree" perhepuusi nimellä ja my_bucket_name S3-bucketisi täydellä nimellä. Tarvitset omistetun S3-bucketin Gramps Web -instanssillesi. Jos bucketia ei vielä ole, S3 Uploader -lisäosa yrittää luoda sen.

Gramps Webin konfigurointi

Käyttääksesi uutta S3-buckettia mediavarastona Gramps Webille, aseta yksinkertaisesti MEDIA_BASE_DIR konfigurointivaihtoehto arvoon s3://my_bucket_name.

Kun käytät Docker Composea, helpoin vaihtoehto on lisätä kaikki ympäristömuuttujat env-lohkoon:

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

Jos haluat käyttää S3-yhteensopivaa objektivarastoa, joka ei ole AWS (esim. GCP tai paikallista testausta varten), aseta AWS_ENDPOINT_URL ympäristömuuttuja.

Mediatuotteiden synkronointi

Pitääksesi mediatuotteet synkronoituna paikallisen Gramps-asennuksen ja S3:een isännöityjen Gramps Web -mediatuotteiden välillä, Gramps Web Sync Addon tukee tiedostojen synkronointia Web API:n kautta.