مساعدة مع DISCOURSE_CDN_URL

أنا أحاول إصلاح إعدادات S3/CDN في موقعي وأواجه مشاكل. القليل من الخلفية: كنت أستخدم Digital Ocean Spaces مع bunny.net كـ CDN، وقد قمت بإعداد كل شيء بشكل صحيح في إعدادات الموقع، لكنني لم أقم أبدًا بتعيين DISCOURSE_CDN_URL في ملف app.yml لأنني لم أفهم كيف يعمل أو أهميته. مؤخرًا، انتقلت إلى Amazon S3 بعد أن بدأت تواجه مشاكل مع DO Spaces، لكنني بقيت مع bunny.net كـ CDN. أعتقد أنني فهمت هذا الجزء من عملية الانتقال، وسيقوم @pfaffman بمساعدتي في إعادة تعيين قاعدة البيانات.

المشكلة التي أواجهها الآن هي في تعيين DISCOURSE_CDN_URL. ما فعلته هو إنشاء منطقة سحب جديدة على bunny لهذا الغرض، مع تعيين عنوان المصدر إلى https://community.naturephotographers.network وهو منتداي. لدي سجل CNAME يشير إلى assets.naturephotographers.network. ثم قمت بتعيين DISCOURSE_CDN_URL إلى https://assets.naturephotographers.network، وقد أعيد البناء بنجاح، لكن الأصول من الموقع لا تُسحب من CDN الخاص بـ assets.naturephotographers.network، بل تأتي من مستودع Amazon لسبب ما.

حاولت تشغيل مهمة rake التالية

  after_assets_precompile:
    - exec:
        cd: $home
        cmd:
          - sudo -E -u discourse bundle exec rake s3:upload_assets

لكنها فشلت مع الخطأ التالي:

I, [2021-07-26T13:31:31.754617 #1]  INFO -- : > cd /var/www/discourse && sudo -E -u discourse bundle exec rake s3:upload_assets
`/root` is not writable.
Bundler will use `/tmp/bundler20210726-6572-1a099eq6572' as your home directory temporarily.
ERROR: Ensure S3 is configured in config/discourse.conf or environment vars
I, [2021-07-26T13:31:42.586559 #1]  INFO -- :
I, [2021-07-26T13:31:42.587455 #1]  INFO -- : Terminating async processes
I, [2021-07-26T13:31:42.587523 #1]  INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 56
I, [2021-07-26T13:31:42.587764 #1]  INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 173
173:signal-handler (2021-07-26 13:31:42.588 UTC [56] LOG:  received fast shutdown request
1627306302) Received SIGTERM scheduling shutdown...
2021-07-26 13:31:42.594 UTC [56] LOG:  aborting any active transactions
2021-07-26 13:31:42.596 UTC [56] LOG:  background worker "logical replication launcher" (PID 65) exited with exit code 1
2021-07-26 13:31:42.599 UTC [6573] FATAL:  terminating autovacuum process due to administrator command
2021-07-26 13:31:42.599 UTC [6573] CONTEXT:  while vacuuming block 74749 of relation "pg_toast.pg_toast_21988"
2021-07-26 13:31:42.603 UTC [60] LOG:  shutting down
173:M 26 Jul 2021 13:31:42.630 # User requested shutdown...
173:M 26 Jul 2021 13:31:42.630 * Saving the final RDB snapshot before exiting.
2021-07-26 13:31:42.766 UTC [56] LOG:  database system is shut down
173:M 26 Jul 2021 13:31:43.123 * DB saved on disk
173:M 26 Jul 2021 13:31:43.123 # Redis is now ready to exit, bye bye...

إليك إعدادات موقعي لـ S3/CDN:

ملاحظة جانبية مثيرة للاهتمام؛ إذا كان لدي جميع إعدادات S3/CDN في ملف app.yml بدلاً من إعدادات الموقع، فإن ذلك يكسر موقعي وأحصل فقط على صفحة بيضاء على الرغم من أن الإعدادات متطابقة تمامًا، مع وجود العديد من أخطاء 403 في وحدة التحكم:

  ## S3 Configuration
  DISCOURSE_USE_S3: true
  DISCOURSE_S3_REGION: us-west-1
  DISCOURSE_S3_ACCESS_KEY_ID: ***
  DISCOURSE_S3_SECRET_ACCESS_KEY: ***
  DISCOURSE_S3_CDN_URL: https://images.naturephotographers.network
  DISCOURSE_S3_BUCKET: npnimages
  DISCOURSE_S3_BACKUP_BUCKET: npn-backup
  DISCOURSE_BACKUP_LOCATION: s3

أي أفكار؟ شكرًا لك!

يجب حقًا أن تكون موجودة في متغيرات البيئة (ENV). لن يكفي وجودها في قاعدة البيانات.