マルチサイト環境では、私の理解では、すでに実行されている処理について、R2 を使用するのはインスタンス 1 つだけということになります。設定が管理設定にある場合、RAILS_DB=default と一緒に USE_DB_S3_CONFIG=true を使用する必要があります。これにより、問題なく動作するようになります。
hooks:
after_assets_precompile:
- exec:
cd: $home
cmd:
- sudo -E -u discourse RAILS_DB=default USE_DB_S3_CONFIG=true bundle exec rake s3:upload_assets
- sudo -E -u discourse RAILS_DB=default USE_DB_S3_CONFIG=true bundle exec rake s3:expire_missing_assets
アップロードの移行には、以下のようにこれらの環境変数をエクスポートする必要があります(すべてまとめて、または 1 つずつ)。
RAILS_DB=default \
DISCOURSE_S3_REGION=auto \
DISCOURSE_S3_ENDPOINT=https://<account-id>.r2.cloudflarestorage.com \
DISCOURSE_S3_BUCKET=discourse-files \
DISCOURSE_S3_ACCESS_KEY_ID=<your-access-key> \
DISCOURSE_S3_SECRET_ACCESS_KEY=<your-secret-key> \
rake uploads:migrate_to_s3
app.yml に設定する場合は、DISCOURSE_S3_BUCKET を使用するよう注意してください。Configure an S3 compatible object storage provider for uploads の R2 セクションに誤字があるためです。