質問への回答を要約します。
- Web UIと環境変数は衝突しますか?
- アセットはいつバケットにアップロードされるべきですか?
これをapp.ymlのhookセクションに追加すると、after_assets_precompile(アプリの再構築中)にアップロードされます。
- これをデバッグするにはどうすればよいですか?ログにエラーが表示されません。
次を実行します:
cd /var/discourse
sudo ./launcher enter app
sudo -E -u discourse bundle exec rake s3:upload_assets --trace
- 設定でバケットのサブフォルダを設定することは可能ですか?
アップロードとバックアップに別々のバケットを使用する必要がありますか?
いいえ、そうする必要はありませんが、通常は設定が最も簡単です。基本的に、2つの異なるバケットを使用するか、バックアップバケットにプレフィックスを使用する必要があります。たとえば、次の組み合わせが機能します。
- 異なるバケット
- s3_upload_bucket:
your-uploads-bucket- s3_backup_bucket:
your-backups-bucket
- 異なるプレフィックス
- s3_upload_bucket:
your-uploads-bucket/uploads- s3_backup_bucket:
your-uploads-bucket/backups
Amazon S3 バケットに保存するデータを整理するためにプレフィックスを使用できます。プレフィックスは、オブジェクトキー名の先頭にある文字列です。プレフィックスは、オブジェクトキー名の最大長(1,024 バイト)の範囲内で任意の長さにすることができます。プレフィックスは、ディレクトリと同様の方法でデータを整理する方法と考えることができます。ただし、プレフィックスはディレクトリではありません。](Organizing objects using prefixes - Amazon Simple Storage Service)
- これが機能したら、以前にアップロードされた画像はバケットに転送されますか?再ベイクすると、以前にアップロードされた画像の URL はどのようになりますか?
Discourse インスタンスで S3 アップロードを有効にしました(しばらく前から稼働しています)。既存のローカルアップロードはどうすればよいですか?
既存のアップロードを S3 に移行するには、いくつかの rake タスクを実行できます。これらを実行するには、SSH アクセス、root 権限が必要であり、Discourse アプリに入っている必要があります(管理者一括操作を参照)。ああ、そして app.yml でいくつかの環境変数を設定する必要があります。大胆な人向けではありません。
すべてが完了したら、rake タスクの準備が整います。
rake uploads:migrate_to_s3 rake posts:rebakeこれらが完了したら(アップロードが正常に機能している場合)、バックアップにアップロードを含める必要はなくなります。ボーナスとして、コマンドラインからバックアップを復元できるようになります(app.yml のコピーをどこかに保管しておくだけです)。