Ana içeriğe geç

Medya dosyalarını S3'te barındırma

Aile ağacının medya dosyalarını Gramps veritabanıyla aynı sunucuda barındırmak yerine, bunlar Amazon S3 veya başka bir API uyumlu nesne depolama hizmetinde de barındırılabilir. Bu, Gramps Web sunucusunun depolama ve trafik gereksinimlerini önemli ölçüde azaltır.

Kimlik bilgilerini hazırlama

AWS (veya başka bir nesne depolama hizmeti) hesabınızda, bir erişim anahtar kimliği ve gizli erişim anahtarı alın (öncelikle yalnızca S3'e erişim izni veren bir güvenlik politikası ile ayrı bir kullanıcı oluşturmak isteyebilirsiniz).

Medya dosyalarını yükleme

Mevcut medya dosyalarınızı S3'e yüklemek için, Linux'ta Gramps masaüstünden doğrudan yükleyebileceğiniz S3 Medya Yükleyici Eklentisi ile yerel bir Gramps kurulumu kullanabilirsiniz. Ancak, bazı ek yapılandırmalar gereklidir.

Eklenti, arka planda boto3 Python kütüphanesini kullanır. Öncelikle bunu aşağıdaki komutla yüklemeniz gerekir:

python3 -m pip install boto3

Komut satırında, erişim anahtar kimliğini ve gizli anahtarı uygun ortam değişkenlerine aktarın:

export AWS_ACCESS_KEY_ID=my_access_key_id
export AWS_SECRET_ACCESS_KEY=my_secret_access_key

Artık aşağıdaki komutu çalıştırarak yükleyiciyi başlatabilirsiniz:

gramps -O "Aile Ağacım" -a tool \
    -p "name=s3uploader,bucket_name=my_bucket_name"

"Aile Ağacım" kısmını aile ağacınızın adıyla ve my_bucket_name kısmını S3 kovasının tam adıyla değiştirin. Gramps Web örneğiniz için özel bir S3 kovasına ihtiyacınız olacak. Eğer kova henüz mevcut değilse, S3 Yükleyici Eklentisi bunu oluşturmaya çalışacaktır.

Gramps Web'i yapılandırma

Yeni S3 kovasını Gramps Web için medya kaynağı olarak kullanmak için, MEDIA_BASE_DIR yapılandırma seçeneğini s3://my_bucket_name olarak ayarlayın.

Docker Compose kullanıyorsanız, en kolay seçenek tüm ortam değişkenlerini env bloğuna eklemektir:

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

AWS dışında S3 uyumlu bir nesne depolama hizmeti (örneğin GCP veya yerel test için) kullanmak istiyorsanız, AWS_ENDPOINT_URL ortam değişkenini ayarlayın.

Medya dosyalarını senkronize etme

Yerel bir Gramps kurulumu ile S3'te barındırılan Gramps Web medya dosyaları arasında medya dosyalarını senkronize tutmak için, Gramps Web Senkronizasyon Eklentisi Web API aracılığıyla dosya senkronizasyonunu destekler.