محتوای آموزشی وبلاگ نتآرام
روی لینک دانلود کلیک میکنید، فایلی با پسوند
.zip ذخیره میشود، اما هنگام بازکردن آن پیام خراببودن فایل میبینید. یکی از علتهای کمتر آشکار این است که اصلاً فایل ZIP دریافت نشده است: سرور ممکن است شما را به صفحه ورود، خطای ۴۰۳ یا صفحه دیگری منتقل کرده باشد و برنامه دانلود همان HTML را با نام ZIP ذخیره کرده باشد.البته هر ZIP خراب، صفحه HTML نیست. قطع انتقال، خطای دیسک، حالت اشتباه FTP یا آرشیو اصلی خراب هم ممکن است علت باشند. در ادامه ابتدا نوع چیزی را که دریافت شده پیدا میکنیم، سپس پاسخ سرور و روش دسترسی را بررسی میکنیم تا بدون عمومیکردن فایل خصوصی، لینک سالم تحویل داده شود.
۱. فایل دریافتی را با نسخه اصلی مقایسه کنید
فایل مشکوک را با ابزار استخراج باز نکنید و محتوای ناشناخته آن را اجرا نکنید. اندازه فایل را با نسخه اصلی مقایسه کنید. مثلاً اگر فایل اصلی ۲۰۰ مگابایت است و فایل دانلودی فقط چند کیلوبایت، احتمال پاسخ خطا یا انتقال ناقص وجود دارد. یکسانبودن اندازه بهتنهایی سلامت فایل را تضمین نمیکند.
در لینوکس یا macOS، در ترمینال پوشهای که فایل در آن قرار دارد این فرمان را اجرا کنید:
کد / دستورfile downloaded.zip
نام را با نام واقعی فایل جایگزین کنید. خروجی مانند
HTML document سرنخی است که محتوای دریافتی صفحه وب بوده؛ خروجی Zip archive data فقط نشان میدهد امضای اولیه شبیه ZIP است و هنوز سلامت تمام فایلها را ثابت نمیکند. در ویندوز میتوانید از بخش Properties اندازه را ببینید و یک کپی از فایل مشکوک را در ویرایشگر متن بررسی کنید؛ اگر ابتدای آن شبیه <!DOCTYPE html> یا متن ورود باشد، به احتمال زیاد صفحه دریافت شده است. مراقب باشید صفحه خطا یا ورود ممکن است اطلاعات خصوصی داشته باشد؛ آن را عمومی منتشر نکنید.برای مقایسه مطمئن یک فایل واقعی، هش SHA-256 نسخه اصلی را با نسخه دریافتی مقایسه کنید. روی لینوکس:
کد / دستورsha256sum original.zip
sha256sum downloaded.zip
در PowerShell ویندوز، برای هر دو فایل دستور مشابه زیر را با مسیر واقعی اجرا کنید:
کد / دستورGet-FileHash -Algorithm SHA256 -LiteralPath 'C:\Downloads\downloaded.zip'
اگر فایل اصلی بعد از بارگذاری تغییر نکرده باشد، یکسان بودن هشها نشانه بسیار قوی یکسان بودن محتواست. اگر متفاوتاند، هنوز معلوم نیست اشکال در آپلود، دانلود یا نسخه اصلی است؛ مراحل بعدی محل اختلاف را روشن میکند.
۲. لینک نهایی و انتقالها را ببینید
برای آزمایش از یک فایل کوچک و عمومی و بیخطر استفاده کنید. نشانی نمونه زیر واقعی نیست؛ نشانی فایل آزمایشی خودتان را جایگزین کنید:
کد / دستورcurl -I https://dl.example.com/test.zip
curl -I -L https://dl.example.com/test.zip
فرمان اول پاسخ اولیه را نشان میدهد و دومی انتقالها را دنبال میکند.
301 یا 302 همراه Location یعنی درخواست به نشانی دیگری میرود. اگر مقصد به صفحه ورود یا دامنهای متفاوت برسد، ببینید چرا آن مسیر نیاز به احراز هویت دارد. کد 403 نشانه رد دسترسی و 404 نشانه پیدا نشدن منبع در آن مسیر است. 200 بهتنهایی تضمین نمیکند پاسخ ZIP باشد؛ یک صفحه خطا یا ورود هم میتواند کد ۲۰۰ بدهد.در آخرین پاسخ به
کد / دستورContent-Type توجه کنید. مقدار text/html برای فایلی که انتظار ZIP دارید یک سرنخ مهم است؛ با این حال بعضی سرورها نوع محتوا را اشتباه تنظیم میکنند. به همین علت نوع واقعی فایل دریافتشده را هم بررسی میکنیم. بعضی سرورها برای HEAD و GET رفتار متفاوت دارند؛ آزمایش دقیقتر را با GET و یک فایل کوچک انجام دهید:curl -sS -L -D headers-test.txt -o downloaded-test.zip https://dl.example.com/test.zip
file downloaded-test.zip
فرمان اول سرآیندها را در یک فایل و بدنه را در فایل دیگر میگذارد. این کار فایل را واقعاً دانلود میکند.
headers-test.txt میتواند اطلاعات نشست یا نشانی خصوصی داشته باشد؛ با دیگران بهصورت عمومی به اشتراک نگذارید. در Windows PowerShell برای فراخوانی برنامه واقعی curl میتوانید curl.exe بنویسید. از گزینههایی که اعتبار گواهی HTTPS را خاموش میکنند استفاده نکنید.۳. اگر به صفحه ورود منتقل میشوید
فایل ممکن است عمداً فقط برای کاربر واردشده یا خریدار در دسترس باشد. لینک اختصاصی فروشگاه، کوکی ورود یا توکن زماندار میتواند بخشی از همان کنترل دسترسی باشد. در این حالت، عمومیکردن پوشه برای حذف خطا راه امنی نیست. ابتدا با یک حساب مجاز وارد شوید و لینک را از صفحه سفارش یا بخش دریافت همان حساب بگیرید. در پنجره خصوصی که وارد نشدهاید، نرسیدن به فایل خصوصی ممکن است رفتار درست باشد.
اگر کاربر مجاز هم به صفحه ورود برمیگردد، آدرس اولیه و مقصد، زمان تقریبی و شماره سفارش یا شناسه درخواست را به پشتیبانی بدهید؛ رمز، کوکی و لینک حاوی توکن را در پیام عمومی نفرستید. صاحب سایت باید تنظیم نشست، اعتبار لینک و دسترسی کاربر را بررسی کند. راهنمای خطای دانلود فایل خریداریشده ووکامرس مراحل مرتبط با سفارش را جداگانه توضیح میدهد.
۴. اگر صفحه خطا بهجای ZIP برمیگردد
برای
404، در File Manager دایرکتادمین مسیر واقعی فایل را با نشانی تطبیق دهید. نام فایلها در لینوکس به حروف بزرگ و کوچک حساس است. فایل را بهصورت آزمایشی با نام ساده انگلیسی و بدون اطلاعات خصوصی بارگذاری کنید و مسیر همان فایل را امتحان کنید. اگر فایل در پوشه دیگری است، نشانی را اصلاح کنید؛ جابهجایی عجولانه تمام فایلهای سایت لازم نیست.برای
403، نوع محافظت مسیر، مجوز فایل و تنظیم Hotlink را بررسی کنید. اگر لینک مستقیم از یک صفحه کار میکند ولی در برنامه دانلود خیر، ممکن است محدودیت ارجاعدهنده یا سیاست دسترسی علت باشد. بهجای خاموشکردن همه حفاظتها، از صاحب سرویس یا تنظیمات حساب بخواهید مسیر مجاز را مشخص کند. خطای ۵۰۰ به گزارش وبسرور نیاز دارد و صرف تغییر پسوند فایل آن را درست نمیکند.اگر هدر میگوید
text/html ولی دستور file محتوای ZIP معتبر میبیند، نوع محتوا در تنظیم تحویل فایل ممکن است اشتباه باشد. اگر هر دو HTML نشان میدهند، باید علت دریافت صفحه را رفع کرد. یک مرورگر دیگر یا نام تازهٔ آزمایشی کمک میکند کش و افزونه مرورگر از عامل سرور جدا شوند.۵. پس از اصلاح، دریافت واقعی را تکرار کنید
فایل آزمایشی را دوباره با لینک نهایی دریافت کنید، نوع آن را ببینید و هش را با نسخه اصلی مقایسه کنید. سپس همان مسیر کاری کاربر را امتحان کنید: برای فایل عمومی بدون ورود و برای فایل خصوصی با حساب مجاز. اگر ZIP واقعی است اما هش تفاوت دارد، دوباره آپلود و دانلود را با روش مناسب انجام دهید و کاملبودن هر دو انتقال را بررسی کنید. برای ادامهپذیری فایل بزرگ، آموزش آزمایش ادامه دانلود مفید است.
برای نگهداری فایلهای سایت، امکانات هاست دانلود نتآرام را با فضای موردنیاز و نوع دسترسی فایلها بسنجید. مفهوم کدهای انتقال و سرآیند پاسخ را هم در مستندات HTTP موزیلا میتوانید ببینید.
اشتراکگذاری:
لینکدینتلگرامایکس
مقاله قبلی
مقاله بعدی
دیدگاهها (۰)
دیدگاههای تاییدشده و پاسخهای تیم نتآرام
