ارسال یک فایل چندگیگابایتی فقط پر شدن نوار پیشرفت نیست. سرویس انتقال فایل باید داده را دریافت و ذخیره کند، اطلاعات فایل را نگه دارد و اجازه دهد گیرنده بدون دسترسی به حساب فرستنده آن را دانلود کند. متن همچنین توضیح میدهد که چرا ایمیل برای این کار محدودیت دارد: Base64 حجم داده را حدود ۳۳ درصد افزایش میدهد و محدودیت پیوست معمولاً روی اندازه پیام پس از این تبدیل اعمال میشود.
معماری معرفیشده پنج بخش اصلی دارد: برنامه سمت کاربر، server دریافت فایل، بخش ذخیرهسازی، database مربوط به metadata و server دانلود. مرورگر با File API به فایل دسترسی پیدا میکند و میتواند آن را به بخشهای کوچکتر تقسیم کند. server دریافت، درخواستها را میگیرد، هویت کاربر و داده ورودی را بررسی میکند و روند ارسال را هماهنگ نگه میدارد.
خود فایل معمولاً در Object Storage قرار میگیرد؛ اما metadata آن، مانند نام، اندازه، نوع محتوا، محل ذخیره، شناسه انتقال و زمان انقضا، در database ثبت میشود. هنگام باز شدن لینک دانلود، server مجوز دسترسی و تاریخ انقضا را بررسی میکند و در صورت معتبر بودن، فایل ذخیرهشده را برای دریافت آماده میکند.
در Chunked Upload، فایل به بخشهای کوچک، مثلاً ۱۰ مگابایتی، تقسیم میشود و هر بخش با یک درخواست HTTP مستقل ارسال میشود. server مشخص میکند کدام بخشها رسیدهاند. این الگوی معماری با سازوکار HTTP chunked transfer encoding تفاوت دارد.
Resumable Upload مسئله قطع اتصال را پوشش میدهد: پس از اتصال دوباره، برنامه از server میپرسد چند byte با موفقیت دریافت و ذخیره شده است و ارسال را از همان موقعیت ادامه میدهد. برای بررسی سالم رسیدن هر بخش نیز میتوان از Checksum استفاده کرد؛ دو طرف مقدار را محاسبه و مقایسه میکنند و در صورت تفاوت، server آن بخش را رد میکند و ارسال دوباره را میخواهد.


