لم ينجح أي شيء معي بنسبة 100٪ للأسف. ماذا فعلت في النهاية؟
هل هناك أي فكرة عن كيفية عمل هذا في إصدارات 3.x اليوم؟ لا يزال لدي مجموعة من الصور على S3 أحتاج إلى إيجاد طريقة لإعادتها إلى الجهاز المحلي. أرحب بالاقتراحات. (لم يعد الأمر rake uploads:migrate_from_s3 موجودًا)
لقد قمت بإعداد كل شيء للعمل من الجهاز المحلي (النسخ الاحتياطي فقط موجود على S3). وجدت أن العديد من المشاركات لا تزال تشير إلى S3 بروابط مثل:
<img src="//x.amazonaws.com/original/1X/afda2721f64341ca46576020acae7aaee92bd9d3.PNG" width="308" height="206">
والتي تشير إلى
https://xxx.amazonaws.com/original/1X/afda2721f64341ca46576020acae7aaee92bd9d3.PNG
هل لديك أي اقتراحات بخصوص هذا الأمر؟ لقد سئمت حقًا من مواجهة مشاكل مع كل تحديث أو تغيير ![]()
لم يتم الحل. سيكون من الجيد لو كان لدى ديسكورس حل
أوه. إذا كان هذا موقعك ولديك أغراضك على S3، فيجب أن تكون قادرًا على تشغيل S3، وتمكين الإعداد المخفي الموضح في https://meta.discourse.org/t/enable-hidden-setting-to-include-s3-uploads-in-the-backups/276535، وإنشاء نسخة احتياطية، وتغيير التكوين إلى الصور المحلية واستعادة النسخة الاحتياطية.
أود أن أعرف ما إذا كان شخص ما قد تمكن من جعل هذا يعمل.
يعمل مع كل موقع يتم ترحيله من استضافة Discourse.org إلى الاستضافة الذاتية (وكان هذا الإعداد ممكّنًا قبل حصولهم على النسخة الاحتياطية).\n\nالأمر صعب بعض الشيء حيث يجب ضبط جميع إعدادات S3 (في ملف YML الخاص بك) عند إنشاء النسخة الاحتياطية ثم إيقاف تشغيلها جميعًا (في كل مكان، بما في ذلك قاعدة البيانات إذا قمت بضبطها هناك) قبل إجراء الاستعادة.
إنها طريقة منطقية للغاية، لكنها لا تعمل مع أولئك الذين يستخدمون cloudflare R2. أو أن هذه المشكلة تخصني وحدي. عندما قمت بعمل نسخة احتياطية، قمت أيضًا بتشغيل الإعداد المخفي. للأسف، لا يتضمن الملفات الموجودة في R2 في النسخة الاحتياطية. يعطي الخطأ هنا: Uploads in cloudflare R2 are not added to the backup: Failed to download ******* because Aws::S3::Errors::Http501Error
تشير الوثائق وخبرتك إلى أن R2 غير مدعوم، لذلك ستحتاج إلى حل المشكلة بطريقة أخرى.
اعتقدت أنه كان يعمل بالنسبة لي، لكنني لم أختبر بعناية ولم أستخدمه إلا في اختبار بسيط.
إذا لم يتمكن النسخ الاحتياطي من تنزيل الملفات من R2، فستحتاج إلى استخدام أداة أخرى لاسترداد الملفات من R2 ثم دفعها إلى الدلو الجديد الخاص بك ثم تحديث قاعدة البيانات يدويًا (يمكنك البحث عن مواضيع باستخدام مهمة remap rake، أعتقد).
هذه عملية معقدة، لذلك ستحتاج إلى فهم قدر كبير عن R2 و S3 و Discourse’s Uploads. من المحتمل أن يكون من الصعب شرح مشاكلك بدقة كافية للحصول على حل في منتدى.
أقوم بتنزيل الملفات يدويًا وتحميلها إلى الخادم. بالنسبة لأولئك الذين يسألون عن كيفية القيام بذلك، يمكنك الاتصال بحسابات S3 باستخدام برنامج winscp. بعد ذلك، يمكنك بسهولة استيراد الملفات إلى جهاز الكمبيوتر الخاص بك. بعد ذلك، قمت بتحميله محليًا وأعدت إنشاء المواضيع، وأظهرت 0 مشاركة. لم يتخذ أي إجراء. قمت بتغييره في وقت ما ولم يجد شيئًا أيضًا. ربما فاتني شيء، لا أريد أن أقول ذلك دون اختبار مرة أخرى، ربما كان خطئي. إذا حاولت مرة أخرى، سأكتب النتائج. شكرًا.
الحصول على الملفات إلى خادمك هو مجرد الجزء (السهل) من المشكلة.
يمكنك النظر إلى التحميلات باستخدام
cd /var/discourse
./launcher enter app
rails c
Upload.pluck(:url)
سيُظهر لك هذا عناوين URL لتحميلاتك. ثم تحتاج إلى تعديل كل هذه التحميلات بحيث تحتوي على المسار الجديد إلى الدلو الجديد الخاص بك. يمكنك محاولة البحث عن أمر إعادة التعيين. أعتقد أنه قد يعمل
لقد قمت بتحميله محليًا وأعدت إنشاء المواضيع،
لست متأكدًا مما يعنيه هذا.
تغيير الإعدادات إلى الصور المحلية
هل يمكنك إخباري بكيفية القيام بهذا الجزء، هل تقصد فقط تعطيل إعداد تضمين تحميل S3 في النسخ الاحتياطي أم شيئًا آخر؟
إعداد موفر تخزين كائنات متوافق مع S3 لتحميل الملفات يصف كيفية إعداد S3 عن طريق الإضافة إلى ملف app.yml الخاص بك. إذا لم تفعل ذلك بهذه الطريقة، فقم بإلغاء تعيين كل الأشياء المتعلقة بـ S3 في إعدادات الموقع ثم افعل ذلك بهذه الطريقة.
إذا فعلت ذلك بهذه الطريقة، فقم فقط بالتعليق على هذه الإعدادات (أو ربما فقط use_s3 ودلو التحميل.