بدون آپلود فایل یک ZIP بسازید
فایلها را با هم انتخاب کنید، فشردهسازی متعادل را برگزینید و ZIP حاصل را ذخیره کنید. یک Worker سرآیندهای محلی، دادهٔ فشردهشده با DEFLATE، جمعهای کنترلی CRC-۳۲ و فهرست مرکزی را در همین تب مینویسد. اگر استفاده از ابزار فایل منبع را در یک درخواست شبکه از سایت خارج کند، آزمون مرورگری شکست میخورد.
حداکثر ۲۰۰ فایل غیرخالی، هرکدام تا ۵۰ مگابایت و در مجموع تا ۲۵۰ مگابایت. بایتها در همین زبانه میمانند.
بایگانی از اشیای File که همین تب از قبل در اختیار دارد ساخته میشود، بدون مرحلهٔ آپلود یا تبدیل در راه دور.
هر ورودی یک نام تخت و امن دارد و نام فایلهای تکراری بهجای بازنویسی روی هم شمارهگذاری میشوند.
نتیجه یک ZIP معمولی با ورودیهای Store یا روش ۸ (DEFLATE) است، بنابراین ابزارهای بایگانی رایج دسکتاپ و موبایل میتوانند آن را باز کنند.
چگونگی کار
مراحل انجام کار
- بررسی کن ۱ تا ۲۰۰ فایل غیرخالی انتخاب شده، هیچ فایل بیش از ۵۰ مگابایت نیست و مجموع از ۲۵۰ مگابایت عبور نمیکند.
- هر نام را به basename تخت تبدیل کن، جداکنندهٔ مسیر و نویسهٔ کنترلی را حذف کن، نام رزروشدهٔ ویندوز را ایمن و برخوردهای بدون توجه به بزرگی حروف را شمارهگذاری کن.
- برای هر فایل یک ورودی ZIP آغاز کن؛ Store از روش ۰ و حالتهای سریع، متعادل و کمحجم از DEFLATE روش ۸ با سطحهای ۱، ۶ و ۹ استفاده میکنند.
- فایل را در قطعههای ۵۱۲ کیلوبایتی به نویسنده بده تا CRC-۳۲، رکوردها و پیشرفت را بسازد و میان قطعهها برای دکمهٔ لغو به رویدادها فرصت بده.
- تاریخ ثابت ۱ ژانویهٔ ۱۹۸۰ و دسترسی قابل حمل را روی هر ورودی بگذار، فهرست مرکزی را تمام کن و بایتهای ZIP را برای دریافت آماده ساز.
فرضها
- فایلها بهصورت ورودیهای تخت در ریشهٔ بایگانی قرار میگیرند؛ مسیر پوشه، توضیح و زمان اصلی فایل کپی نمیشود.
- حالت Store بایتهای منبع را تغییر نمیدهد، اما کوچکترشدن ZIP را تضمین نمیکند؛ سربرگ، نام، checksum و فهرست مرکزی اندازه دارند.
- سه سطح فشردهسازی همگی DEFLATE استانداردند. سطح بالاتر میتواند زمان بیشتری بگیرد و روی JPEG، MP۴، PDF یا ZIP تقریباً چیزی کم نکند.
- CRC-۳۲ خرابی تصادفی را هنگام استخراج پیدا میکند، اما امضای رمزنگاری یا اثبات منشأ نیست.
- ابزار رمزگذاری یا گذرواژه اضافه نمیکند؛ هرکس فایل ZIP را داشته باشد میتواند نام و محتوای ورودیها را ببیند.
- بایتهای منبع و بایگانی در حال رشد در Worker مرورگر نگه داشته میشوند؛ به همین دلیل سقفها صریحاند.
پرسشهای رایج
آیا مرورگر واقعاً میتواند از چند فایل محلی یک ZIP بسازد؟
بله. انتخابگر فایل به این تب دسترسی به بایتهای انتخابشده را میدهد و یک Worker میتواند CRC-۳۲ هر فایل را محاسبه کند، داده را فشرده کند و رکوردهای ZIP را بهصورت محلی بنویسد، پیش از آنکه مرورگر Blob تمامشده را برای دانلود ارائه دهد.
وقتی دو فایل انتخابی یک نام داشته باشند چه میشود؟
اولین فایل نام پایهٔ امن خود را نگه میدارد و تداخلهای بعدی پسوند شمارهداری در پرانتز میگیرند. مقایسهها بزرگی حروف را نادیده میگیرند، بنابراین بایگانی هنگام استخراج روی سیستم فایلی که به بزرگی حروف حساس نیست رفتاری پیشبینیپذیر دارد.
منابع
روش کامل، مثال محاسبهشده و همهٔ فرضهای این نتیجه در این صفحه آمده است: ساخت فایل ZIP.