Skip to main content

الترحيل إلى S3

هذه التعليمات مخصصة للإصدار v5.x وما بعده. إذا كنت تتبع هذا الدليل لإصدار أقدم، فيُرجى استخدام sharelatex بدلًا من overleaf في أسماء المسارات، والبادئة SHARELATEX_ بدلًا من OVERLEAF_ لمتغيرات البيئة. بالنسبة للإصدار v6 وما بعده، تخطَّ أوامر user_files القديمة.
يسعدنا أن نسمع منك! إذا كنت ترغب في مشاركتنا عدد الملفات التي رحّلتها، وحجمها الإجمالي، والمدة التي استغرقها الترحيل، فراسلنا عبر البريد الإلكتروني ayaka-notes@outlook.com .
سيرشدك هذا الدليل خلال الترحيل من التخزين على القرص إلى تخزين كائنات متوافق مع S3. ويشير إلى أقسام من المستند التمهيدي حول إعداد S3.

المتطلبات

  • تخزين كائنات متوافق مع S3 للتواصل معه، راجع #s3-setup للاطلاع على الخيارات
  • مساحة قرص فارغة لترحيل البيانات الحالية، تعادل تقريبًا الحجم الحالي على القرص
  • فترة صيانة لإجراء الترحيل الفعلي
  • نسخة احتياطية كاملة، بما في ذلك الإعدادات، لتمكين الاستعادة منها

تقدير مساحة القرص اللازمة للترحيل

يمكننا استخدام du لحساب استخدام القرص الحالي:
إذا لم تكن لديك مساحة قرص كافية على الخادم الحالي، فجرّب توصيل قرص آخر بالخادم.
تتمتع مجلدات السجل (history) بالبنية الصحيحة مسبقًا. يمكنك الرفع مباشرةً من مجلد المصدر المربوط (bind-mounted)، وهو ما لا يتطلب أي مساحة قرص إضافية.

خطوات الترحيل

الخطوة 0: إيقاف المثيل

نحتاج إلى التأكد من ترحيل جميع ملفات المستخدمين/القوالب. ومن الأفضل إيقاف المثيل لتجنب فقدان الملفات المرفوعة حديثًا. يُرجى الاطلاع على دليلنا حول إجراء نسخ احتياطي متّسق لمعرفة إجراءات الإيقاف.

الخطوة 1: إعادة كتابة بنية المجلدات

نحتاج إلى إعادة كتابة بنية مجلدات ملفات المشاريع لرفعها إلى S3. بنية المجلدات للتخزين المحلي في filestore هي <project-id>_<file-id>، بينما بنية المجلدات في S3 هي <project-id>/<file-id>. فيما يلي، يُستخدم /srv/overleaf-s3-migration لتخزين الملفات بالبنية الجديدة للمجلدات. استبدل /srv/overleaf-bind-mount بمجلد المضيف المربوط بالمسار /var/lib/overleaf. شغّل أوامر النسخ على المضيف بصلاحيات تتيح قراءة هذه المجلدات والكتابة فيها؛ وتبقى الحاوية متوقفة. يمكننا الاستفادة من tar لإعادة كتابة البنية:

الخطوة 2: رفع الملفات

بحسب تفضيلك، يمكنك استخدام عميل S3 ‏minio mc أو aws cli لرفع الملفات إلى تخزين الكائنات المتوافق مع S3 لديك. aws cli
  • هنا يجب أن تستبدل overleaf-user-files وoverleaf-template-files وoverleaf-project-blobs وoverleaf-chunks بأسماء حاويات S3 (buckets) الخاصة بك.
  • واستبدل أيضًا /srv/overleaf-bind-mount بالمسار المحلي لربط /var/lib/overleaf. افتراضيًا، يكون هذا ~/overleaf_data في نشر docker-compose.yml، و<toolkit-checkout>/data/overleaf عند استخدام Toolkit.
minio mc نستخدم هنا الاسم المستعار للخادم “s3”، وربما اخترت اسمًا آخر.

الخطوة 3: تشغيل المثيل بحيث يشير إلى S3

أضف جميع المتغيرات المتعلقة بـ S3 إلى إعداداتك، كما هو مفصّل في قسم نظرة عامة على المتغيرات في دليل إعداد S3. أبقِ على ربط مجلد البيانات: فقد يحتوي أيضًا على مفاتيح تشفير Zotero أو Mendeley التي لا تُرحَّل إلى S3.
يُرجى الإبقاء على ربط قرص مؤقت للملفات العابرة كما هو.
يمكنك الآن تشغيل المثيل والتحقق من الترحيل:
  • إمكانية معاينة الملفات الثنائية في المحرر
  • إمكانية ترجمة ملف PDF يحتوي على صور
  • إمكانية رفع ملفات جديدة

التراجع

يمكنك التراجع عن الترحيل بسلاسة بعكس الخطوات:
  1. أوقف المثيل
  2. انسخ الملفات مرة أخرى بعكس ترتيب المصدر/الوجهة
  3. اكتب الملفات الجديدة مرة أخرى في المجلد المحلي باستخدام transform معكوس
  4. أعد تشغيل المثيل بالإعدادات القديمة
يزيل التحويل الأول المجلد ذا المستوى الأعلى. ويغيّر التحويل الثاني بنية المجلدات إلى بنية مسطحة. وتضمن أنماط البدل (wildcards) استخراج الملفات فقط، دون المجلدات الأم (مجلدات المشاريع).
آخر تعديل في ٥ أكتوبر ٢٠٢٦