أنا أقوم بنقل كمية كبيرة من المحتوى، حوالي 15 ألف قصة إخبارية، إلى Discourse عبر واجهة برمجة التطبيقات (API)، وهذه المواضيع تحتوي على روابط لصور. تم رفع الصور مؤخرًا إلى تخزين الكائنات (blob storage) وهي متاحة للجمهور بالكامل.
تظهر الصور في معظم المواضيع بشكل صحيح ويتم تحميلها عبر الروابط المباشرة (hotlink) ورفعها إلى Discourse كما هو متوقع. ومع ذلك، إما أن بعض المواضيع لا تتجاوز مرحلة عرض الروابط في الموضوع، أو تنتهي بإظهار صور معطلة لسبب ما.
الإعدادات هي:
تثبيت نظيف من Discourse فقط لاختبار عملية النقل
تخزين الصور على S3
لم أواجه أي مشاكل عند إنشاء منشورات كمستخدم ورفع الصور، ويبدو أن المشكلة تحدث فقط عند نقل المنشورات عبر واجهة برمجة التطبيقات، أي بشكل جماعي وبسرعة (أستخدم معامل skip_validations=true). حتى الآن، قمت بنقل ما يصل إلى 1000 موضوع كحد أقصى قبل مسح البيانات والبدء من جديد.
هل لديكم أي أفكار حول ما قد يسبب ذلك؟ أو أي نصائح حول كيفية التشخيص؟ تبدو جميع مهام Hotlink Sidekiq مخططة وتعمل كما هو متوقع.
حسنًا، قمت بإصلاح جميع المنشورات المنقولة عبر واجهة برمجة التطبيقات باستخدام /posts/{num}/rebake. بشكل غريب، لم يعمل أمر rake posts:rebake داخل الحاوية.
بعد أتمتة استدعاء واجهة برمجة التطبيقات لإعادة الخبز، اتضح أن معدل فشل تحميل الصور يبلغ حوالي 80%. هذا أمر مذهل حقًا.
في النهاية، اتضح أن هذا غير موثوق؛ فقد نجح مع بعض المنشورات فقط وليس مع جميعها. سأضطر إلى المحاولة مرة أخرى لرفع الصور. لقد واجهت مشاكل مماثلة من قبل حيث كانت الطلبات تتوقف دون استجابة. غير متأكد مما إذا كنت قد جربت معلمة skip_validations في تلك الطلبات أم لا.