المساعدة في ترحيل فئة من مثيل إلى آخر بدون مسؤول على المثيل المصدر

لقد كان فريقنا يعمل كضيف على مثيل Discourse آخر. نحن نقوم بإعداد مثيل Discourse الخاص بنا ونود ترحيل الفئات الخاصة بنا من المثيل الحالي إلى المثيل الجديد. ليس لدينا وصول إداري إلى الخادم الحالي ولكن المسؤولين على استعداد لـ تصدير الفئات لنا. ومع ذلك، فإن هذا التصدير لا يحتوي على أي مرفقات أو صور. لدينا وصول API إلى المثيل الحالي ولكن فقط إلى فئاتنا. لدينا وصول إداري على المثيل الجديد.

هل من الممكن ترحيل المرفقات والصور باستخدام API فقط للمثيل الحالي؟

كنت أتصفح ملف JSON المصدر، وأسماء ملفات المرفقات هي سلاسل عشوائية مختلفة عن تلك التي يتم تقديمها في المتصفح، مما يجعل الهندسة العكسية لـ API لتنزيل المرفقات والصور ليست سهلة. حتى لو تمكنا من تنزيل جميع المرفقات من المثيل الحالي، لست متأكدًا من كيفية إضافتها إلى المثيل الجديد. هذا المنشور يجعلني أرغب في الاعتقاد بأن الأمر بهذه السهولة مثل إسقاطها في هذا الموقع مع شرط أن تكون أسماء الملفات متطابقة مع ما هو موجود في ملف JSON المصدر، ولكن هذا لا يبدو أنه يعمل.

أي أفكار؟

إعجاب واحد (1)

هل يمكنك توضيح ما تقصده بهذا؟

إذا نظرت إلى البيانات المعالجة لتدفق منشور JSON، فستحصل على عناوين URL العادية للمرفقات.

4 إعجابات

عذرًا، لم أتمكن من الرد لأنني جديد وتم تعليق حسابي.

في تصدير JSON للفئة (باستخدام الطريقة المذكورة أعلاه)، يبدو المرفق في منشور معين كالتالي:

![image|505x473](upload://yyWAy3WPpjetoctRNL9hmPvNNwm.jpeg

في JSON المطبوخ من واجهة برمجة التطبيقات (API)، نفس الصورة لها عنوان URL التالي:

https://my.server.com/uploads/default/original/2X/f/f23d29caba9a31b2b63b93f4104d746623703ca2.jpeg

لا يبدو أن هناك أي علاقة في أسماء الملفات. بالنظر إلى هذه المعلومات، يمكنني استخدام واجهة برمجة التطبيقات لجلب المرفقات غير المدرجة في التصدير. لكنني لست متأكدًا من اسم الملف الذي يجب أن أمنحه له وأين يجب وضعه على الخادم الجديد.

بمجرد فرز ذلك، هل سيكون من الممكن ظهور المرفقات في صفحات المواضيع المعروضة عند تحميلها كما كانت قبل الترحيل.

إعجاب واحد (1)

إذا نظرت إلى المحتوى المطبوخ عبر واجهة برمجة التطبيقات (على سبيل المثال هذا) فسأرى عناوين URL الكاملة للصور.

لكن أعتقد أنك قد تبحث عن هذا:

إعجابَين (2)

إعادة التقرير بحل يعمل مع نسخة اختبار لم أجربها على بيئة الإنتاج.

هذا لكي أقدمه في المستقبل للفريق الذي سيقوم بالترحيل فعليًا أو لأي شخص آخر يحتاج إلى شيء مشابه.

يجب إعطاء المرفقات الاسم الطويل، والذي يمكن تحويله من الشكل المختصر في JSON عبر السكربت بايثون في Converting short upload URLs to full URLs

يجب وضع المرفقات في discourse/public/uploads/tombstone/default/original/

ثم قم بتشغيل uploads:recover_from_tombstone أثناء تواجدك في /var/discourse/

3 إعجابات