مرجع / الأدلة
Telegram · التخزين والاستعادة
النسخ الاحتياطية، ونقل الملفات القديمة إلى السحابة الخاصة بك، والنسخ الخاضعة لـ Object Lock، والاستعادة على جهاز جديد.
TgWitness / التوثيق · النشر والاستعادة
تُقسّم اللوحة المهام إلى ثلاث مهام:
| المهمة | ماذا تفعل |
|---|---|
| احتفظ بنسخة احتياطية | انسخ السجل الموقّع ونقاط الفحص والملفات المحفوظة وعمليات التصدير الموضوعة في قائمة الانتظار إلى وجهة S3 المُعدة مسبقًا. |
| مساحة محلية مجانية | انسخ المرفقات القديمة المحددة إلى S3 أو إلى سحابة rclone عن بُعد، ثم أعد قراءتها بالكامل، وتحقق من البايتات المشفرة، ثم احذف النسخة المحلية التي تم التحقق منها. |
| احتفظ بنسخة كدليل | قم بتكوين S3 Object Lock وتحقق من حالة الاحتفاظ التي تم إرجاعها. يجب أن تؤكد الخدمة الوضع والتاريخ المطلوبين. |
لا تؤدي عملية تحرير المساحة أبدًا إلى حذف أو إعادة كتابة السجل الموقّع. يحتفظ كل مرفق بصورةه الأصلية SHA-256 وإيصال الاسترداد. يتم إجراء ضغط gzip الاختياري قبل التشفير المصادق عليه. لا تحتوي أسماء الملفات السحابية على أسماء Telegram، أو معرّفات الدردشة، أو أسماء المرفقات الأصلية. قد يصل حجم المرفق الواحد إلى 32 جيجابايت.
لا يُعد رد التحميل بحد ذاته إذنًا بحذف الملف. TgWitness يقوم بتنزيل الكائن المشفر بالكامل ويتحقق من حجمه وSHA-256، ويحفظ الإيصال، ثم يتحقق من البايتات المحلية مرة أخرى مباشرةً قبل الحذف. في حالة فشل التحميل، أو اختلاف القراءة، أو إلغاء النقل، يبقى الملف المحلي في مكانه. إذا لم تكن نسخة احتياطية للأدلة المُفعَّلة قد نسخت هذا الملف بعد، فإن عملية الحذف تنتظر ذلك أيضًا.
في هذه الصفحة
عندما توشك مساحة القرص على النفاد#
يتوقف تنزيل المرفقات مؤقتًا عندما تقل المساحة الحرة عن قيمة المعلمات ← المرفقات ← مساحة القرص الحرة (افتراضيًا 1 GiB)، مع الاحتفاظ بالطابور. تستمر ملاحظات النصوص. هذا مستقل عن الإشعارات: تعطيلها لا يعطل المساحة الاحتياطية للتنزيل أو وسائل حماية التخزين.
للتدخل مبكرًا، فعّل التشغيل تلقائيًا واختر حذف الملف المحلي لتحرير مساحة وفعّل بدء نقل إضافي عند انخفاض مساحة القرص. تبدأ القاعدة الاختيارية افتراضيًا عندما تقل المساحة الحرة عن 5120 MiB وتعمل على دفعات حتى تتوفر 10240 MiB. يمكن ضبط الحدّين. تستخدم الوجهة نفسها والحد الأدنى لعمر الملفات وحد الدفعة والتحقق بإعادة القراءة الكاملة ومتطلبات النسخ الاحتياطي للأدلة الخاصة بالتشغيل اليدوي. لا تفعّل وجهة من تلقاء نفسها. تفحص كل 30 ثانية؛ ويؤخر الخطأ أو عدم التقدم المحاولة التالية خمس دقائق. تبقى الحالة ووقت إعادة المحاولة بعد إعادة التشغيل. عندما تكون القاعدة غير نشطة، تحتفظ العمليات المجدولة بفاصلها المعتاد.
تعرض اللوحة المساحة الحرة واحتياطي التجهيز وجاهزية القاعدة والملفات المتجاوزة لعدم كفاية المساحة المؤقتة. يفحص التجهيز والاستعادة أقصى احتياج للمساحة المؤقتة قبل البدء، والمساحة المتاحة أثناء الكتابة. يُستخدم احتياطي التنزيل المضبوط، بحد أدنى 64 MiB لعمليات التخزين. هذه الفحوص ليست حصة لنظام الملفات؛ فقد تستهلك عملية أخرى المساحة بين الفحوص.
يضغط Gzip الكائنات البعيدة دون فقدان بيانات؛ ولا يقلّص دفتر السجل النشط أو ينشئ أرشيفات محلية. قد لا تنكمش ملفات JPEG والفيديو وZIP إلا قليلًا، أو قد تكبر قليلًا. عند تفعيل الضغط، قد يتطلب التجهيز مؤقتًا نحو ضعف حجم المرفق إضافة إلى الاحتياطي. اختر حد بدء مبكرًا بما يكفي لأكبر ملفاتك. يُحتفظ بالملف الأكبر من قدرة التجهيز ويُبلّغ عنه؛ ويمكن للملفات الأصغر والنسخ البعيدة المتحقق منها سابقًا تحرير مساحة. تتيح النسخة المتحقق منها إزالة الملف المحلي دون إنشاء ملف تجهيز محلي آخر. تحتاج الاستعادة أيضًا إلى مساحة مؤقتة وقد تُرفض حتى تتوفر.
إذا لم توجد ملفات مؤهلة للنقل أو لم تُضبط وجهة، فلا يمكن لـ TgWitness استعادة المساحة تلقائيًا. لا تختصر إدارة التخزين دفتر السجل الموقّع ولا تعيد كتابته أبدًا. ولا يزال يحتاج إلى مساحة لملاحظات نصية جديدة.
ربط وجهة#
في «Extras» → «Storage & disk space» → «Manage storage»، اختر المهمة والوجهة، احفظها، ثم حدد «Test upload & download». يقوم الاختبار بتحميل عينة صغيرة عشوائية وقراءتها مرة أخرى. ولا يستخدم محتوى Telegram.
بالنسبة لـ S3، استخدم نقطة النهاية والمنطقة وحاوية التخزين الفعلية للمزود. تستخدم Wasabi وBackblaze و Cloudflare R2 والخدمات المتوافقة الأخرى نفس إعدادات S3. لا يعني وجود واجهة برمجة تطبيقات (API) متوافقة وحدها دعم ميزة Object Lock. قد يسمح وضع الحوكمة للمسؤول المصرح له بتجاوز فترة الاحتفاظ؛ أما وضع الامتثال فيفرض قيودًا مختلفة. اقرأ حالة Object Lock التي يتم إرجاعها قبل الاعتماد على فترة الاحتفاظ.
بالنسبة لوجهة rclone، قم بإنشاء جهاز بعيد باستخدام إعداد مزود rclone و
الصق قسم [name] في اللوحة. يدعم المساعد المثبت
MEGA وGoogle Drive وOneDrive وDropbox وBox وpCloud والمزودين الآخرين الموضحين في
أداة الاختيار. يتم حفظ بيانات الاعتماد في الخزينة المشفرة لمساحة العمل هذه. يتم حفظ
عمليات تحديث OAuth مرة أخرى في الخزينة. لا تُضاف بيانات الاعتماد إلى أحداث
السجل ولا يتم تضمينها في تنزيلات الاستعادة.
يتم تثبيت الأداة المساعدة داخل مساحة العمل، مع إصدار مثبت وSHA-256. ولا تتم إضافته إلى مسار PATH للنظام. ملفات التكوين وملفات العمل هي ملفات مؤقتة داخل مساحة العمل تلك. يتم رفض الأوامر عن بُعد القائمة على الأوامر والملفات المحلية . يتطلب rclone حاليًا مسار Direct محددًا صراحةً لـ الطلبات الخارجية. استخدم تخزين S3 الأصلي لمسار SOCKS5 أو HTTP لمساحة العمل؛ لا يتجاوز rclone المسار غير المتاح بصمت.
احتفظ بملف الاستعادة#
اختر «حفظ ملف الاستعادة» بعد نسخ الملفات واحتفظ به في مكان منفصل عن التثبيت. فهو يحتوي على مفتاح فك التشفير وإيصالات الكائنات الموقعة ، لذا تعامل معه كنسخة احتياطية للمفتاح الخاص. احتفظ أيضًا ببيانات التكوين البعيد الأصلية بيانات اعتماد الوجهة بشكل منفصل. ملف الاستعادة الذي تم أخذه قبل نسخة لاحقة لا يحتوي على إيصال تلك النسخة اللاحقة.
يجب أن تكون بصمة مفتاح التوقيع مسجلة مسبقًا بشكل مستقل. فالتوقيع الذي يتم التحقق منه فقط مقابل المفتاح الموجود داخل الملف نفسه لا يثبت لمن ينتمي ملف الاستعادة هذا.
لإصلاح إيصالات التخزين المفقودة في مساحة عمل موجودة، افتح «استعادة الملفات من ملف استعادة محفوظ» واختر الملف. تقوم اللوحة بالتحقق من التوقيع وتطلب نفس مفتاح توقيع مساحة العمل. وترفض استبدال مفتاح تخزين مختلف. ثم اختر «استعادة جميع الملفات». تؤدي عملية الاستعادة إلى إيقاف قاعدة التخزين التلقائية مؤقتًا، بحيث لا تتمكن المرحلة المجدولة التالية من إزالة الملفات المستعادة مرة أخرى على الفور. أعد تفعيل القاعدة عند الانتهاء من النسخ المحلية.
تقوم «Restoration» بالتحقق من النص المشفر، والمصادقة على عملية فك التشفير، وفك الضغط إذا
لزم الأمر، والتحقق من النص العادي الأصلي SHA-256 قبل وضع الملف في media/.
لا يحل الكائن البعيد التالف أبدًا محل ملف محلي. يتم الاحتفاظ بالملف المحلي الموجود الذي يحتوي على
بايتات مختلفة للمراجعة بدلاً من الكتابة فوقه.
الاستعادة بعد فقدان التثبيت#
قم بتثبيت TgWitness على جهاز آخر. استخدم ملف الاستعادة الخاص، و«البصمة» المسجلة بشكل منفصل، وبيانات اعتماد الوجهة الأصلية:
python -m tgwitness.storage recover \
--recovery storage-recovery.json \
--fingerprint TRUSTED_WORKSPACE_SHA256 \
--credentials original-rclone.conf \
--output recovered-attachments
بالنسبة لـ S3، --credentials يشير إلى ملف JSON خاص مع access_key و
secret_key؛ ويوفر ملف الاستعادة الموقّع إعدادات الوجهة.
يستخدم الأمر اتصالاً خارجياً مباشراً ويقوم بتنزيل المساعد المثبت
عندما يحتاج إليه جهاز rclone البعيد. ويرفض وجود دليل إخراج موجود مسبقاً.
يتم كتابة البايتات الأصلية المستردة إلى recovered-attachments/media/، ويتم تسميتها حسب
SHA-256 الخاص بها. recovery-log.jsonl هو سجل غير موقّع لعمليات الاسترداد.
لا يعيد الأمر إنشاء دفتر يوميات موقّع مفقود أو مفتاح التوقيع الخاص به. احتفظ
بنسخة احتياطية كاملة لمساحة العمل من أجل ذلك. ملف استرداد التخزين ليس نسخة احتياطية كاملة
لمساحة العمل.
روبوت المشغل وإشعارات الإكمال#
تنتمي روبوت Telegram إلى المشغل. قم بإنشائه عبر BotFather وقم بتعيين الرمز المميز، والدردشة المستهدفة، ومعرّفات مستخدمي Telegram المسموح بهم صراحةً في اللوحة. يجب أن يتطابق كل من المرسل والدردشة. يتم تجاهل الرسائل والأوامر المعاد توجيهها من الروبوتات الأخرى.
/status و /stats متاحان في الوضع الافتراضي «الحالة فقط». ويضيف
وضع التحكم الاختياري /pause, /resume و /copy. /copy يطلب
مهمة التخزين المُعدة؛ وهذا لا يعني أن التحميل عن بُعد قد انتهى بالفعل. لا يمكن للأوامر
توفير عناوين URL أو ملفات أو برامج شل عشوائية.
استخدم إعدادات الإشعارات المنفصلة للتنبيهات وإتمام المهام. تميز إشعارات الإتمام بين تصدير الحساب الذي يحتوي على فجوات والتصدير الكامل، وتعرض السجل وعدد وحدات التخزين. لا يتم تضمين مقتطفات الرسائل ما لم يتم تمكينها بشكل منفصل في إعدادات الإشعارات. يتم إنشاء أداة اختيار الخدمة من كتالوج Apprise الفعلي المثبت بدلاً من مجموعة ثابتة من أمثلة المزودين.