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 sunucusu için 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ıyla 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" ifadesini aile ağacınızın adıyla ve my_bucket_name ifadesini S3 kovanızı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 grampsweb hizmetinin environment: bloğuna eklemektir:

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

Sadece Gramps Web yapılandırma seçeneğinin GRAMPSWEB_ ön ekini taşıdığını unutmayın; AWS_* değişkenleri doğrudan arka plandaki boto3 kütüphanesi tarafından okunur ve ön ek olmadan kalmalıdır.

AWS'den farklı bir S3 uyumlu nesne depolama kullanmak istiyorsanız (örneğin GCP veya yerel test için), 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'si aracılığıyla dosya senkronizasyonunu destekler.