بعد تثبيت Discourse (2.7.0.beta1) واستيراد مشاركات Google Groups القديمة، أضفت إعدادات سلة المفاتيح S3 (ولكن بدون عنوان URL لشبكة CDN) وقمت بتشغيل الأمر
rake uploads:migrate_to_s3
والذي بدا وكأنه يعمل بشكل ممتاز. تم تحميل جميع الصور إلى S3 وحاول Discourse الوصول إليها عبر عنوان URL لـ S3 تم إنشاؤه تلقائيًا—شيء مثل
https://ortus-discourse.s3.dualstack.us-west-2.amazonaws.com/original/1X/75747ca17a3ca01f298f836691e1990916bafccb.png
ثم قمت بإعادة تسمية السلة (إلى ortus-discourse-uploads) وأعدت توزيع Cloudfront أمامها مع اسم CNAME تم إعداده بواسطة Cloudflare يُدعى
https://communitycdn.ortussolutions.com/
يعمل الاسم CNAME و Cloudfront و S3 بشكل ممتاز. عناوين URL مثل هذه تخدم بشكل صحيح أحد الصور الموجودة في السلة:
https://communitycdn.ortussolutions.com/original/1X/75747ca17a3ca01f298f836691e1990916bafccb.png
ومع ذلك، تكمن المشكلة في أن Discourse عالق تمامًا في نطاق ortus-discourse.s3.dualstack.us-west-2.amazonaws.com القديم (الذي لا يعمل بسبب إعادة تسمية السلة)، وبغض النظر عن عدد المرات التي أعيدت فيها بناء الحاوية أو أعدت خبز المشاركات القديمة، لا أستطيع بأي حال من الأحوال جعل Discourse يستخدم عنوان URL الجديد لـ CDN. لقد بحثت في Google لمدة يوم وأعدت الخبز ربما اثني عشر مرة (داخل حاوية app) مع إعدادات مختلفة. كل خيط في المنتدى يعطي نفس النصيحة—إعادة البناء وإعادة الخبز، لكن هذا لا يعمل.
ليست الصور الموجودة في المشاركات فقط هي المعطلة، بل حتى <link rel="icon" type="image/png" href=""> وشعار الموقع عالقان في النطاق القديم ولن يستخدموا عنوان URL لـ S3 CDN.
إليك إعدادات S3 الحالية الخاصة بي.
DISCOURSE_S3_ACCESS_KEY_ID: '********'
DISCOURSE_S3_SECRET_ACCESS_KEY: '******'
DISCOURSE_BACKUP_LOCATION: 's3'
DISCOURSE_ENABLE_S3_UPLOADS: true
DISCOURSE_S3_BUCKET: 'ortus-discourse-uploads'
DISCOURSE_S3_UPLOAD_BUCKET: 'ortus-discourse-uploads'
DISCOURSE_S3_BACKUP_BUCKET: 'ortus-discourse-backups'
DISCOURSE_S3_REGION: 'us-west-2'
DISCOURSE_S3_CDN_URL: https://communitycdn.ortussolutions.com
DISCOURSE_CDN_URL: https://community.ortussolutions.com
لقد جربت حتى إعادة تعيين عنوان URL القديم إلى عنوان URL الجديد في المشاركات على النحو التالي
rake posts:remap["ortus-discourse.s3.dualstack.us-west-2.amazonaws.com","communitycdn.ortussolutions.com"]
لكن الأمر قال 0 مشاركات متأثرة.
لا يوجد في أي من متغيرات البيئة أو إعدادات قاعدة البيانات الخاصة بي أي شيء يشير إلى اسم السلة القديم ortus-discourse، لذا لا أستطيع معرفة المكان الذي يحصل منه Discourse على ذلك. أنا جديد على Discourse ولست مطور Ruby، لذا لم أنظر أعمق مما يمكنني رؤيته في ملف app.yml، وواجهة مستخدم المسؤول، ومخرجات أوامر rake التي وجدت في المنتديات.