لقد قمت مؤخرًا بنقل منتداك من خادم إلى آخر. الإصدار الحالي هو 2.6.0.beta2. كل شيء يعمل بشكل جيد باستثناء أن الصور التي تم رفعها سابقًا غير مرئية، كما لا يستطيع المستخدمون رفع صور جديدة. بالإضافة إلى ذلك، لا يمكن للمستخدمين تحديث صور ملفاتهم الشخصية.
جربت عدة حلول ذُكرت في هذا المنتدى، لكن لم ينجح أي منها معي. أحتاج إلى مساعدة!
لم أستخدم S3 على هذا الخادم من قبل، حتى لأغراض الاختبار.
كان علي تغيير الخادم لأنني أردت تغيير المنطقة. الخادم الجديد مطابق للخادم القديم من جميع النواحي، باستثناء المنطقة. كنت أستخدم Cloudfront CDN، ولكن بعد الهجرة قمت بإبطال ذاكرة التخزين المؤقت بالكامل.
يمكنني رؤية أن الصور القديمة متاحة على الخادم الجديد لأنها كانت مدرجة ضمن النسخة الاحتياطية، ومع ذلك لا تزال هذه المشكلة قائمة.
نعم، كان كل شيء متطابقًا في كلا الخادمين. لقد اتبعت الخطوات الصحيحة للهجرة، كما قمت بفحص المشكلات التي واجهها مستخدمون آخرون أثناء الهجرة.
المشكلة ليست فقط في عدم قدرتي على عرض الصور القديمة، بل إن المستخدمين غير قادرين على تحميل صور جديدة أيضًا. أعتقد أن المشكلة تتعلق ببعض برامج تشغيل الصور (أعتذر عن التخمين الغامض).
حسناً، لنلخص الأمر: كان خادمك القديم مثبتاً وفق التثبيت القياسي. أعدت التثبيت على نظام بُني بنفس الطريقة، واستعدت النسخة الاحتياطية.
إذا نظرت إلى مصدر الصفحة، فكيف تبدو عناوين URL للصور؟ وكيف يقارن ذلك بملفات الرفع الموجودة في المسار /var/discourse/standalone/web-only/uploads/default؟
ماذا يحدث إذا حاولت فتح رابط صورة مباشرة؟
هل كانت أي من هاتين المثبتاتين تعملان بنظام الحاويتين (two-container)؟
إعادة التصنيف من Contribute > Bug إلى Support لأن هناك خطوات واضحة لإعادة إنتاج المشكلة. بمجرد أن نتمكن من تحديد السبب الجذري، قد يكون من الضروري تقديمها كخطأ برمجي (bug)، لكن هذا ليس الحال حالياً.
يبدو أن صور المنتدى الخاصة بي مُحمَّلة في /var/discourse/shared/standalone/uploads/default/optimized/1X. توجد العديد من الصور المخزَّنة بعدة دقّات، ومع ذلك، فإن اسم ملف الصورة في المنتدى وفي الدليل غير متطابق.
أحصل على رمز خطأ 404 لـ https://forumcdn.domain.com/uploads/default/optimized/1X/55cfd1bf40edcb3ac19d3e412a5ad63f93c0a854_2_225x250.png، ولكن عند استبدال اسم ملف الصورة باسم ملف من الدليل، تعمل بشكل صحيح. جميع ملفات الصور سليمة ويمكن عرضها عند فتحها مباشرة، المشكلة فقط في أن أسماء الملفات على المنتدى مختلفة.
هل تم تمكين تضمين الصور المصغرة في النسخ الاحتياطية في المثيل المصدر؟
إذا لم يكن كذلك:
تضمين الصور المصغرة المُنشأة في النسخ الاحتياطية. سيؤدي تعطيل هذا الخيار إلى جعل النسخ الاحتياطية أصغر حجمًا، لكنه يتطلب إعادة معالجة (rebake) لجميع المنشورات بعد الاستعادة.
وهو ما يعني أنك ستحتاج إلى تشغيل أمر rake posts:rebake
تم تعطيل include thumbnails in backups على مثيل المصدر. لقد قمت للتو بتشغيل rake posts:rebake داخل حاوية discourse وحصلت على النتيجة التالية:
root@vps-app:/var/www/discourse# rake posts:rebake
Rebaking post markdown for 'default'
628 / 628 (100.0%)
628 posts done!
للتأكد تمامًا، قمت بإفراغ ذاكرة التخزين المؤقت لـ CDN، لكنني ما زلت غير قادر على عرض أي صور. أيضًا، لا يمكنني تحميل أي صور، لذا أشك في أن هذا الحل يمكنه معالجة تلك المشكلة.