Hyppää sisältöön

Media-tiedostojen isännöinti S3:ssa

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

Valmistellaan käyttöoikeustiedot

AWS (tai muu objektitallennuspalvelu) -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).

Lataa media-tiedostot

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

Lisäosa käyttää taustalla boto3 Python-kirjastoa. Sinun täytyy ensin asentaa se komennolla

python3 -m pip install boto3

Komentorivillä, vie access key ID ja salainen avain asianmukaisiin 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.

Määritä Gramps Web

Käyttääksesi uutta S3-buckettia media-lähteenä 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 grampsweb-palvelun environment:-lohkoon:

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

Huomaa, että vain Gramps Web -konfigurointivaihtoehto sisältää GRAMPSWEB_-etuliitteen; AWS_*-muuttujat luetaan suoraan taustalla olevasta boto3-kirjastosta ja niiden on pysyttävä ilman etuliitettä.

Jos haluat käyttää S3-yhteensopivaa objektitallennusta, joka ei ole AWS (esim. GCP tai paikalliseen testaukseen), aseta AWS_ENDPOINT_URL ympäristömuuttuja.

Media-tiedostojen synkronointi

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