S3にメディアファイルをホスティングする¶
家系図のメディアファイルをGrampsデータベースと同じサーバーにホスティングする代わりに、Amazon S3や他のAPI互換のオブジェクトストレージサービスにホスティングすることもできます。これにより、Gramps Webサーバーのストレージおよびトラフィック要件が大幅に削減されます。
認証情報の準備¶
AWS(または他のオブジェクトストレージサービス)アカウントで、アクセスキーIDとシークレットアクセスキーを取得します(最初にS3へのアクセスのみを許可するセキュリティポリシーを持つ別のユーザーを作成することをお勧めします)。
メディアファイルのアップロード¶
既存のメディアファイルをS3にアップロードするには、Linux上でS3 Media Uploader Addonを使用したローカルのGrampsインストールを利用できます。このアドオンはGrampsデスクトップから直接インストールできます。ただし、いくつかの追加設定が必要です。
このアドオンは、内部でboto3 Pythonライブラリを使用しています。まず、以下のコマンドでインストールする必要があります。
python3 -m pip install boto3
コマンドラインで、アクセスキーIDとシークレットキーを適切な環境変数にエクスポートします:
export AWS_ACCESS_KEY_ID=my_access_key_id
export AWS_SECRET_ACCESS_KEY=my_secret_access_key
次に、以下のコマンドを実行してアップローダーを起動できます。
gramps -O "My Family Tree" -a tool \
-p "name=s3uploader,bucket_name=my_bucket_name"
「My Family Tree」をあなたの家系図の名前に、my_bucket_nameをあなたのS3バケットの完全な名前に置き換えてください。Gramps Webインスタンス用に専用のS3バケットが必要です。バケットがまだ存在しない場合、S3 Uploader Addonはそれを作成しようとします。
Gramps Webの設定¶
新しいS3バケットをGramps Webのメディアソースとして使用するには、MEDIA_BASE_DIR 設定オプションをs3://my_bucket_nameに設定します。
Docker Composeを使用する場合、最も簡単な方法はすべての環境変数をenvブロックに追加することです:
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以外のS3互換オブジェクトストレージ(例:GCPやローカルテスト)を使用したい場合は、AWS_ENDPOINT_URL環境変数を設定してください。
メディアファイルの同期¶
ローカルのGrampsインストールとS3にホスティングされたGramps Webメディアファイル間でメディアファイルを同期させるために、Gramps Web Sync AddonはWeb APIを介したファイル同期をサポートしています。