Large migrations · Verification · اثبات پشت نوار پیشرفت

جابجایی صدها گیگابایت بین ابرها: چگونه می دانید هر فایلی وارد شده است؟

در 500 گیگابایت، "آپلود به نظر تمام شد" مدرکی نیست. یک مهاجرت قابل اعتماد به یک موجودی بادوام، یک انتقال حالت برای هر شی، بازیابی قابل تکرار پس از وقفه، و اثبات از خود مقصد نیاز دارد.

به‌روزرسانی‌شده ; 16 دقیقه زمان مطالعه.

پاسخ کوتاه

FileArk کتابخانه را به رکوردهای هر فایل و پیام های صف بادوام تقسیم می کند. یک کارگر یک تحویل را کپی می‌کند، شناسه مقصد برگشتی را ذخیره می‌کند، اندازه را تأیید می‌کند، دقیقاً آن شی را پس می‌خواند، و SHA-256 را با بار مبدأ مقایسه می‌کند. رکورد تأیید می شود - و پیام تأیید می شود - تنها پس از آن بررسی ها و به روز رسانی پایگاه داده موفقیت آمیز است.

چرا مقیاس معنای "کار کرده" را تغییر می دهد

بررسی ده فایل آسان است. ده هزار فایل نیست. یک کتابخانه شخصی بزرگ می‌تواند اسناد کوچک، ویدیوهای چند گیگابایتی، فایل‌های خالی، پوشه‌های تودرتو، نام‌های یونیکد، پروژه‌های بایگانی‌شده و قالب‌های بومی ابری را با هم ترکیب کند. یک شکست می تواند در درصدی چشمگیر پنهان شود.

مجموع ها مفید هستند اما ناقص هستند. دو کتابخانه می‌توانند اندازه ظاهری یکسانی را نشان دهند، در حالی که یکی از آنها یک شی را ندارد یا حاوی یک شی کوتاه شده است که توسط برخی فایل‌های نامرتبط متعادل شده است. تعداد فایل‌ها می‌تواند پس از صدور سند بومی یا اشیاء ارائه‌دهنده حذف شده نیز متفاوت باشد.

واحد مفید حقیقت، کار فایل است: کدام شی مبدأ خوانده شد، کدام شی مقصد ایجاد شد، چه بایت هایی با هم مقایسه شدند، چه زمانی تأیید کامل شد، و آیا تلاشی حل نشده باقی می ماند.

چرخه زندگی کامل FileArk، مشروح

چرخه عمر حاشیه نویسی نشان می دهد که پایگاه داده اسکنر راه اندازی مرورگر FileArk کارگر صف بادوام و تأیید SHA-256
مرورگر جریان کنترل را شروع می کند. اسکنر، صف ثابت، پایگاه داده و کارگر انتقال طولانی مدت را انجام می دهند.

هنگامی که Start پذیرفته شد، API ابتدا یک کار اسکن را در MongoDB می نویسد و سپس یک پیام اسکن دائمی را در صف بادوام RabbitMQ با تأیید ناشر فعال می کند. اگر انتشار ناموفق باشد، کار به صورت Failed علامت‌گذاری می‌شود و API گزارش می‌دهد که نمی‌تواند اسکن را به‌طور ایمن در صف قرار دهد.

اسکنر هر دو ارائه دهنده را احراز هویت می کند، منبع انتخابی را موجودی می کند، سهمیه مقصد محدود را در برابر بایت های کشف شده بررسی می کند و یک رکورد پایگاه داده برای هر فایل منبع اضافه می کند. پیام‌های مهاجرت دائمی را منتشر می‌کند و تنها پس از موفقیت آن انتشار، اسکن کامل را علامت‌گذاری می‌کند.

کارگر مهاجرت از تأییدیه های دستی و شمارش پیش واکشی یک استفاده می کند. در حالی که محتوا خوانده می‌شود، بارگذاری می‌شود، دوباره خوانده می‌شود، تأیید می‌شود و ادامه می‌یابد، تحویل تأیید نشده باقی می‌ماند. بنابراین یک اتصال یا فرآیند متوقف شده می تواند کار ناتمام را به صف بازگرداند.

ردیف پایگاه داده یک آیتم چک لیست است، نه حسابداری یکبار مصرف

هر رکورد فایل در حالت تعلیق شروع می شود، در طی تلاش به InProgress منتقل می شود و تنها پس از تأیید به Uploaded می رسد. تعداد تلاش، زمان آخرین تلاش، جزئیات خطا، شناسه شی مقصد، هر دو خلاصه SHA-256، روش تأیید و VerifiedAt به رکورد پیوست می‌مانند.

سوابق تکمیل شده به عنوان مسیر پیشرفت و ممیزی در پایگاه داده باقی می مانند. "تقاطع یک پرونده" به معنای تغییر وضعیت کنترل شده است، نه حذف شواهد. تحویل‌های صف تکراری آن حالت را بررسی می‌کنند و فوراً سابقه‌ای را تأیید می‌کنند که قبلاً با VerifiedAt آپلود شده است.

پس از سه تلاش ناموفق، یک مشکل دائمی با یک مهر زمانی تکمیل برای چرخه تلاش ناموفق می شود. این باعث می شود استثناها قابل مشاهده باشند و از چرخش پیام سمی برای همیشه در حالی که داشبورد گیر کرده است جلوگیری می کند.

دروازه تکمیل برای یک فایل
Pending
  → InProgress (attempt recorded)
  → destination ID stored
  → destination size matches
  → exact destination object re-downloaded
  → source SHA-256 == destination SHA-256
  → Uploaded + VerifiedAt persisted
  → queue message acknowledged

چرا یک فایل ممکن است بیش از یک بار تحویل داده شود

صف های قابل اعتماد معمولاً حداقل یک بار تحویل را ارائه می دهند، نه یک وعده جادویی که دقیقاً یک بار در میان API ابری، کارگزار پیام و پایگاه داده است. خرابی ممکن است پس از پذیرش آپلود توسط OneDrive یا Google Drive رخ دهد، اما قبل از اینکه کارمند تکمیل را بنویسد.

FileArk این عدم قطعیت را با سوابق ضعیف و بازیابی مقصد کنترل می کند. کارگر ابتدا بررسی می کند که آیا سابقه قبلاً تأیید شده است یا خیر. در غیر این صورت، می تواند از شناسه مقصد ذخیره شده استفاده کند یا قبل از تصمیم به آپلود مجدد، مسیر مقصد مورد انتظار و اندازه دقیق نتیجه قطع شده را جستجو کند.

نامزدهای بازیابی سپس در معرض همان راستی‌آزمایی هش دقیق شی قرار می‌گیرند. یافتن نام فایل آشنا کافی نیست. نکته این است که یک تلاش قطع شده را دوباره به شواهد تبدیل کنیم، نه به یک موفقیت خوشبینانه.

ظرفیت در مقصد و روی کارگر بررسی می شود

قبل از انتشار کارهای هر فایل، اسکنر اندازه‌های ابرداده منبع غیرمنفی را جمع‌آوری می‌کند و هر زمان که ارائه‌دهنده یک سهمیه محدود ارائه می‌کند، نیاز را با فضای ذخیره‌سازی باقی‌مانده مقصد مقایسه می‌کند. یک مقصد کوچکتر به جای اینکه کار را به یک بن بست شناخته شده هدایت کند، اسکن را با شکست مواجه می کند.

این رقم یک پیش از پرواز است، نه تضمینی: فعالیت حساب می‌تواند در طول اجرا فضا را مصرف کند، گزارش‌های سهمیه ارائه‌دهنده ممکن است تاخیر داشته باشند، و فایل‌های ابری صادر شده ممکن است اندازه منبع معمولی نداشته باشند. اجرای ارائه دهنده و مدیریت خطا در هر فایل فعال باقی می مانند.

دیسک کامپیوتر شما برای مرحله بندی استفاده نمی شود. در کارگر مهاجرت، فایل‌های بالاتر از آستانه حافظه تنها پس از اینکه حجم برای شی مورد انتظار به اضافه یک ذخیره دو گیگابایتی جا داشته باشد، در یک فهرست موقت ایزوله قرار می‌گیرند. محتوای موقت در پاکسازی حذف می‌شود، چه تلاش موفق باشد و چه پرتاب شود.

چرا شناسه مقصد به اضافه SHA-256 مهم است

نام فایل یک هویت منحصر به فرد نیست. مقصد ممکن است از قبل حاوی دو فایل با نام قابل مشاهده یکسان باشد، یا فهرست فراداده ممکن است زمان ببرد تا تسویه حساب شود. پاسخ آپلود شناسه شی ارائه دهنده را ارائه می دهد و FileArk آن شناسه را قبل از مرحله تأیید نهایی ذخیره می کند.

کارگر SHA-256 را در سرتاسر جریان محموله منبع محاسبه می‌کند، آن را آپلود می‌کند، سپس شی مقصد دقیق را با آن شناسه باز می‌کند و دوباره SHA-256 را محاسبه می‌کند. اندازه مساوی برش آشکار را می گیرد. خلاصه رمزنگاری یکسان، بررسی سطح بایت قوی‌تر است.

فقط نمایش فایل منتقل شده پوشش داده می شود. خلاصه نمی‌تواند قوانین اشتراک‌گذاری، نظرات، نسخه‌ها، برچسب‌ها، میانبرها، تنظیمات حفظ یا نحوه ارائه یک سند Google صادر شده را برای کاربر تأیید کند. اینها وظایف پذیرش باقی می مانند.

حذف منبع عمدا خارج از مسیر موفقیت عادی است

امن‌ترین پیش‌فرض فقط کپی است و گزینه حذف FileArk خاموش است مگر اینکه آن را فعال کنید. با غیرفعال بودن حذف، شکست تأیید نمی‌تواند نسخه اصلی را حذف کند زیرا حذف هرگز درخواست نمی‌شود.

اگر به عمد حذف پس از انتقال را فعال کنید، کارگر همچنان منتظر شناسه مقصد، اندازه و اعتبارسنجی SHA-256 قبل از فراخوانی عملیات حذف ارائه دهنده منبع است. انتخاب عملیاتی قوی‌تر برای کتابخانه‌های غیرقابل جایگزین یا بسیار بزرگ، همچنان خاموش نگه داشتن این گزینه و استفاده از یک دوره همپوشانی مورد تایید انسان است.

مهاجرت پاسخ می دهد "آیا یک نسخه تایید شده رسید؟" Retain پاسخ می دهد "چه زمانی می توان نسخه قدیمی را حذف کرد؟" آنها را به عنوان تصمیمات جداگانه با شواهد جداگانه در نظر بگیرید.

همان مدل کنترل در هر دو جهت کار می کند

برای OneDrive به Google Drive، بار مبدأ از Microsoft Graph خوانده می‌شود و شی مقصد از طریق Google Drive با شناسه بازگشتی آن تأیید می‌شود. برای Google Drive به OneDrive، منبع از طریق Google Drive دانلود یا صادر می‌شود و مورد جدید OneDrive از طریق Microsoft Graph بازخوانی می‌شود.

صف، وضعیت های پایگاه داده، تلاش های محدود، ظرفیت پیش از پرواز، خلاصه منبع، شناسه مقصد، خلاصه مقصد، و ترتیب تصدیق جهت خنثی هستند. آداپتورهای ارائه‌دهنده APIهای مختلف آپلود، پوشه و محتوا را مدیریت می‌کنند.

عدم تقارن معناشناسی محتوا است. اسناد بومی Google نیاز به صادرات دارند و هر دو پلتفرم دارای اشتراک گذاری و رفتار نسخه مخصوص سرویس هستند. محتوای فایل تایید شده بایتی نباید به عنوان یک کلون کامل از هر ویژگی همکاری به بازار عرضه شود.

از یک طرح پذیرش چهار قسمتی استفاده کنید

  1. رکورد سیستم را تطبیق دهید

    بررسی کامل، در انتظار، در حال انجام، و شمارش ناموفق. هیچ مورد شکست خورده ای نباید حذف شود زیرا درصد کلی بالا است.

  2. نمونه بر اساس ریسک

    فایل‌هایی را که از دست دادن بیشتر ضرر می‌کنند، به‌علاوه رسانه‌های بزرگ، بایگانی‌ها، اسناد قدیمی، نام‌های غیرانگلیسی، مسیرهای تودرتو، و فایل‌های بومی ابری تبدیل شده باز کنید.

  3. اعتبارسنجی رفتار مقصد

    تست دسترسی از دستگاه ها و کاربران واقعی. اشتراک‌گذاری مورد نیاز را دوباره بسازید و تأیید کنید که فایل‌های آفیس یا Google صادر شده همانطور که انتظار می‌رود باز شوند.

  4. یک دوره همپوشانی برگزار کنید

    منبع را در دسترس و پایدار نگه دارید در حالی که استفاده معمولی مقصد را تمرین می کند. هر گونه تصمیم لغو یا حذف را بعداً اتخاذ کنید.

پرسش‌های متداول

آیا FileArk از یک صف برای هر فایل استفاده می کند؟

بله. اسکنر یک رکورد پایگاه داده در هر فایل منبع ایجاد یا استفاده مجدد می کند و یک پیام مهاجرت دائمی را منتشر می کند. کارگران آن پیام‌ها را با تأیید دستی دریافت می‌کنند.

چه زمانی یک پیام صف تایید می شود؟

پس از اینکه شناسه شی مقصد، اندازه و SHA-256 تأیید شد و وضعیت Uploaded و VerifiedAt باقی ماند. تحویل ناتمام قابل تحویل مجدد است.

آیا پرونده های تکمیل شده از پایگاه داده حذف می شوند؟

خیر. تکمیل یک انتقال حالت در رکورد بادوام است. این ردیف هویت مقصد، شواهد تأیید، زمان‌بندی و اطلاعات تلاش را برای پیشرفت و ممیزی نگه می‌دارد.

آیا SHA-256 می تواند مجوزها و نسخه های منتقل شده را ثابت کند؟

خیر. ثابت می‌کند که بایت‌های فایل مقصد با بار منبع انتقال‌یافته مطابقت دارند. اشتراک‌گذاری، مجوزها، نسخه‌ها، نظرات، برچسب‌ها، میانبرها و رفتار بومی ارائه‌دهنده نیاز به اعتبارسنجی جداگانه دارند.

آیا OneDrive به Google Drive به همان روش معکوس تأیید می شود؟

قانون اصلی در هر دو جهت یکسان است: خلاصه بار منبع، هویت شی مقصد، اندازه مقصد، خلاصه بارگیری مجدد دقیق شی، تأیید مداوم، سپس تأیید صف.

منابع رسمی استفاده‌شده در این راهنما

مطالعه راهنما