نقل التحميلات من S3 إلى التخزين المحلي

أرغب في نقل ملفاتي من S3 مرة أخرى إلى الخادم المحلي. أقوم بنقل جميع الملفات يدويًا من S3 إلى مجلد التحميلات. هل يكفي تغيير الرابط الأساسي (base URL) لروابط التحميل إلى الرابط الأساسي للمنتدى لإنجاز المهمة؟

إعجابَين (2)

لماذا لا تستخدم مهمة rake المدمجة؟ حسب علمي، تسمى uploads:migrate_from_s3

cd /var/discourse
./launcher enter app
rake uploads:migrate_from_s3

ثم قم بتعطيل إعداد الموقع enable s3 uploads:

وأخيرًا أعد بناء المنشورات:

rake posts:rebake
4 إعجابات

لأن خدمة S3 الخاصة بي هي Minio، وأنا لست متأكدًا مما إذا كانت هذه الوظيفة متوافقة معها أم لا.

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

لقد جربت هذا، وبعد انتهائه، لم ألاحظ أي تغيير في الملفات المرفوعة. لا تزال الملفات المرفوعة تُقدَّم من S3. بالمناسبة، كانت مهمة rake غريبة بالنسبة لي. لقد انتهت بسرعة كبيرة بينما لدي آلاف الملفات المرفوعة على S3. كان من المفترض أن تستغرق بعض الوقت.

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

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

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

هل تمكّنت من حلّ هذه المشكلة؟ أنا أيضًا أبحث عن طريقة لنقل جميع الأصول (كل شيء ما عدا النسخ الاحتياطية) من S3 إلى التخزين المحلي. هل توجد طريقة سهلة للقيام بذلك؟

3 إعجابات

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

ومع ذلك، أنا أيضًا في انتظار حلاً لهذه المشكلة بفارغ الصبر.

4 إعجابات

هناك إعداد مخفي للموقع يُسمى شيئًا مثل “تحميل ملفات S3 المرفوعة إلى الجهاز المحلي عند النسخ الاحتياطي”. أعتقد أنه يمكنك استخدام هذا الإعداد واستعادته على خادم آخر (أو ربما على خادمك إذا قمت بتغيير الإعدادات باستخدام إعدادات الموقع المظللة في متغيرات البيئة). هذا ما تفعله cdck عند إغلاق حساب، ولم أواجه أبدًا أي مشكلة في استعادة أحد نسخها الاحتياطية.

5 إعجابات

لقد قمت بتفعيل هذا الإعداد في وحدة تحكم Rails عبر الأمر SiteSetting.include_s3_uploads_in_backups = true. لكن يبدو أنه لم يُحدث أي تأثير. ظل حجم النسخة الاحتياطية كما هو (حوالي 375 ميجابايت، حتى عندما تكون حجم ملفات الرفع الخاصة بي بين 700 ميجابايت و1 جيجابايت).

إذا كنت تقصد بـ “إعدادات الموقع المُظللة” جميع إعدادات S3 في واجهة المستخدم الخاصة بـ Disco Web، فإنني قد ملأت جميع هذه الحقول بالإعدادات المناسبة.

إعجابَين (2)

أنا أيضًا أبحث عن ترحيل ملفاتي من S3 إلى خادم محلي (VPS منفصل). هل توجد إجراءات موثقة للقيام بذلك؟

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

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

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

هل توجد طريقة للعثور على هذه الإعدادات المخفية؟

إعجابَين (2)

التي قد تحتاجها في سياق هذا النقاش مذكورة أعلاه. يمكنك رؤية جميعها في ملف site_settings.yml في مصدر Discourse.

3 إعجابات

مهمة rake هذه لم تعد متوفرة في 2.9.0 BETA 8

هل لدى أي شخص أفكار حول كيفية الترحيل من S3 إلى المحلي؟

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

يمكنك تفعيل إعداد الموقع المخفي الذي يسمى شيئًا مثل download_s3_with_backups (هذا ليس صحيحًا تمامًا ولكني لا أستطيع العثور عليه على هاتفي الآن) ثم استعادة هذا النسخ الاحتياطي. هذا ما يحدث عند مغادرة استضافة cdck، وهو يعمل. قد تحتاج إلى الاستعادة إلى خادم مختلف (وستفعل ذلك على أي حال للاختبار).

تعديل: شكرًا @Benjamin_D! إنه include_s3_uploads_in_backups

إعجابَين (2)

أعتقد أن هذا هو:

4 إعجابات

أليست هذه الخيار متاحًا في صفحة الإعدادات في عناصر تحكم موقع المسؤول Backup صفحة الإعدادات؟ أليس هذا هو عكس تنزيل ملفات S3؟

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

لا.

backup_with_uploads ليست مثل include_s3_uploads_in_backups. أحدهما يتضمن الملفات المحلية في النسخ الاحتياطي. الآخر يقوم بتنزيل كل ملف من S3 في كل مرة تقوم فيها بعمل نسخة احتياطية. والهدف الكامل من S3 هو أنك لا تحتاج إلى عمل نسخ احتياطية منه.

3 إعجابات

إذًا، هذا يشمل الملفات المحلية عند النسخ الاحتياطي إلى S3

هذا يقوم بتنزيل الملفات من مخزن S3 لتضمينها في النسخة الاحتياطية (والتي يمكن أن تكون محلية أو على S3)


أحاول فهم الخطوات الصحيحة هنا، الهدف هو ترحيل جميع الملفات من S3 إلى المحلية، لذا إذا فهمت ما تقوله:

  1. تمكين backup_with_uploads من وحدة تحكم Rails
  2. إنشاء نسخة احتياطية (إما محلية أو على S3)
  3. استعادة باستخدام النسخة الاحتياطية
  4. تعطيل backup_with_uploads من وحدة تحكم Rails

هل هذا صحيح؟

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

إذًا، ما هو النهج الأفضل فعليًا للانتقال من S3 إلى المحلي؟ :slight_smile:

  • نقل الملفات يدويًا (مجلدات optimized/original) وإجراء إعادة خبز بعد تعطيل خيار S3 من Discourse؟
  • استخدام خيار المسؤول download_s3_with_backups، وتنزيل وفك ضغط هذه الملفات؟
  • rake uploads:migrate_from_s3؟
إعجاب واحد (1)