كيفية إعداد 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

لترحيل الملفات المرفوعة (uploads)، تحتاج إلى تصدير هذه المتغيرات كما هو موضح أدناه أو واحدًا تلو الآخر.

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 في إعداد مزود تخزين كائنات متوافق مع S3 للملفات المرفوعة