So konfigurieren Sie Cloudflare R2 für Ihre Discourse-Community

Für Multisite-Setups, soweit ich das verstehe, was ihr bereits tut, sollt ihr nur eine Instanz mit R2 verwenden. Falls eure Einstellungen in den Admin-Einstellungen liegen, müsst ihr dafür USE_DB_S3_CONFIG=true mit RAILS_DB=default verwenden, und es wird einwandfrei funktionieren.

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

Für die Migration von Uploads müsst ihr diese Variablen wie unten gezeigt oder einzeln exportieren.

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

Falls ihr vorhabt, dies in der app.yml zu hinterlegen, stellt sicher, dass ihr DISCOURSE_S3_BUCKET verwendet, da es in der R2-Sektion von Configure an S3 compatible object storage provider for uploads Tippfehler gibt.