Как настроить Cloudflare R2 для вашего сообщества Discourse

Для multisite, насколько я понимаю, то, что вы уже делаете, — это использование только одного экземпляра с R2. Если ваши настройки находятся в административных настройках, вам нужно использовать USE_DB_S3_CONFIG=true вместе с RAILS_DB=default, и всё будет работать безупречно.

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

Для миграции загрузок вам нужно экспортировать эти переменные, как показано ниже, или по одной.

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, так как в разделе R2 в Configure an S3 compatible object storage provider for uploads есть опечатки.