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を使用する場合、最も簡単なオプションは、grampswebサービスのenvironment:ブロックにすべての環境変数を追加することです:
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
Gramps Webの設定オプションのみがGRAMPSWEB_プレフィックスを持つことに注意してください;AWS_*変数は、基盤となるboto3ライブラリによって直接読み取られ、プレフィックスを付けない必要があります。
AWS以外のS3互換のオブジェクトストレージ(例:GCPやローカルテスト)を使用したい場合は、AWS_ENDPOINT_URL環境変数を設定します。
メディアファイルの同期¶
ローカルのGrampsインストールとS3ホスティングのGramps Webメディアファイル間でメディアファイルを同期させるために、Gramps Web Sync AddonはWeb APIを介したファイル同期をサポートしています。