DROPBOX_ENABLED: "true":
- web (وحدة
dropbox): الربط، ونافذة Dropbox الخاصة بالمشروع، والـ webhook الذي يستدعيه Dropbox. - third-party-datastore: خدمة مستقلة داخل الـ Pod تعالج قائمة انتظار التغييرات المراد إرسالها إلى Dropbox أو جلبها منه.
- document-updater: مع تفعيل Dropbox، يكتب تغييرات المحرر إلى MongoDB في الخلفية، بعد بضع دقائق من مغادرة الجميع للمشروع؛ وعندها فقط تُرسل إلى Dropbox.
الإعداد
1
ConfigMap
30-config.yaml (additions)
GIT_BRIDGE_ENABLED: "true" والـ StatefulSet الخاص بـ git-bridge من التكامل مع Git جاهزين: فبدونهما تُخفي إعدادات الحساب قسم مزامنة المشاريع.2
Secret
DROPBOX_TOKEN_CIPHER_PASSWORD رموز Dropbox الخاصة بالمستخدمين في MongoDB. يجب أن تستخدم كل نسخة متماثلة القيمة نفسها، وتغييرها لاحقًا يجعل كل المستخدمين يعيدون ربط Dropbox.3
أنشئ فهارس قاعدة البيانات
شغّل أوامر الفهارس من إنشاء فهارس قاعدة البيانات مرة واحدة، على العقدة الأساسية (primary) في مجموعة النسخ المتماثلة (replica set):
4
طبّق التغييرات وأعد التشغيل
third-party-datastore.log إلا عندما تكون قيمة DROPBOX_ENABLED هي "true".5
افتح الـ webhook على الإنترنت
يجب أن يصل Dropbox إلى ثم أضف الـ webhook في Dropbox App Console كما هو موضح في صفحة Toolkit.
${OVERLEAF_SITE_URL}/dropbox/webhook من الإنترنت. إذا كان الـ Ingress أو موازن الأحمال لديك لا يسمح إلا ببعض المسارات أو الشبكات من الخارج، فاسمح بهذا المسار؛ فهو المسار الوحيد الذي يستدعيه Dropbox. تحقّق منه من خارج الكتلة:عدة نسخ متماثلة
لا حاجة إلى شيء إضافي سوىDROPBOX_TOKEN_CIPHER_PASSWORD المشترك:
- قد يصل الـ webhook إلى أي نسخة متماثلة. فهو يكتفي بإضافة التغيير إلى قائمة الانتظار في Redis.
- تشغّل كل نسخة متماثلة third-party-datastore، وتعمل كل منها على قائمة الانتظار المشتركة. تُؤخذ قائمة انتظار المستخدم بقفل في Redis، لذا لا ترسل تغييرات مستخدم معيّن أو تجلبها إلا نسخة متماثلة واحدة في كل مرة.
- يكتب document-updater في كل نسخة متماثلة المشاريع الخاملة في الخلفية. يُؤخذ كل مشروع من قائمة مشتركة في Redis، لذا يُكتب مرة واحدة.

