وبلاگ نت‌آرامآموزش، تجربه و راهکارهای زیرساخت

فایل جدید آپلود شده اما لینک دانلود نسخه قدیمی را می‌دهد؛ رفع مشکل کش

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

انتشار:
توسط تیم فنی نت‌آرام
۵ دقیقه زمان مطالعه
۰ دیدگاه
محتوای تخصصی، ساده و کاربردی
هماهنگ با هویت حرفه‌ای نت‌آرام
بازگشت به لیست مقالات
تصویر شاخص مقاله فایل جدید آپلود شده اما لینک دانلود نسخه قدیمی را می‌دهد؛ رفع مشکل کش در وبلاگ نت‌آرام
محتوای آموزشی وبلاگ نت‌آرام
فایل جدید را جایگزین کرده‌اید، اما مشتری با همان لینک هنوز فایل قبلی را دریافت می‌کند. ممکن است فایل در پوشه اشتباه آپلود شده باشد، نسخه قدیمی در مرورگر یا CDN نگهداری شود، یا لینک صفحه به نشانی دیگری برود. پیش از پاک‌کردن گسترده کش، اول مشخص می‌کنیم کدام نسخه کجا قرار دارد.
این مراحل را با فایلی عمومی و کوچک تمرین کنید. برای فایل خصوصی یا لینک دارای توکن، هدرها و نشانی کامل را در محیط عمومی و پیام پشتیبانی بدون پوشاندن اطلاعات حساس قرار ندهید.

۱. خود فایل روی میزبان را تأیید کنید

در File Manager مسیر متصل به دامنه دانلود را از تنظیمات پنل پیدا کنید. نام، پوشه، اندازه و زمان فایل را با نسخه‌ای که آپلود کرده‌اید مقایسه کنید؛ وجود دو پوشه با نام مشابه یا تفاوت حروف کوچک و بزرگ روی لینوکس رایج است.
اگر SSH دارید، در پوشه فایل این دو دستور را اجرا کنید:
کد / دستورls -lh 'release.zip' sha256sum 'release.zip'
نام نمونه را با نام واقعی جایگزین کنید. دستور دوم یک اثرانگشت SHA-256 از محتوا می‌دهد. همان هش را برای فایل اصلی روی رایانه مقایسه کنید؛ در PowerShell می‌توانید از Get-FileHash -Algorithm SHA256 -LiteralPath 'C:\Path\release.zip' استفاده کنید. برابر بودن هش‌ها نشان می‌دهد محتوای آن دو فایل با احتمال عملی بسیار بالا یکسان است. اگر متفاوت‌اند، ابتدا آپلود یا مسیر مقصد را اصلاح کنید؛ مشکل هنوز به کش ثابت نشده است.

۲. پاسخ عمومی را با فایل اصلی مقایسه کنید

روی رایانه‌ای دارای curl، یک پوشه موقت بسازید و فایل عمومی کوچک را دانلود کنید:
کد / دستورworkdir=$(mktemp -d) curl -sS -D "$workdir/headers.txt" -o "$workdir/downloaded.zip" 'https://download.example.com/release.zip' cat "$workdir/headers.txt" sha256sum "$workdir/downloaded.zip"
دامنه و نام را عوض کنید. این دستورها در ترمینال Linux یا macOS اجرا می‌شوند؛ برای ویندوز می‌توانید دانلود را با مرورگر انجام دهید و هش را در PowerShell بگیرید. فایل در پوشه موقت نوشته می‌شود و مسیر آن در متغیر workdir است. اگر فایل بزرگ است، این آزمایش ترافیک مصرف می‌کند.
هش دانلود را با فایل جدید مقایسه کنید. اگر فرق دارد، هدر وضعیت HTTP و Content-Type را هم ببینید: ممکن است به جای ZIP صفحه خطا یا ورود دانلود شده باشد. اگر 301 یا 302 دیدید، مقصد Location را بررسی کنید؛ دستور بالا به طور خودکار تغییر مسیر را دنبال نمی‌کند. برای این حالت راهنمای ZIP که HTML برمی‌گرداند کمک می‌کند.

۳. محل احتمالی نسخه قدیمی را محدود کنید

نشانی را در مرورگر ناشناس و یک مرورگر دیگر امتحان کنید. اگر فقط مرورگر قبلی فایل قدیمی می‌گیرد، کش همان مرورگر یا برنامه دانلود می‌تواند علت باشد. یک بار تازه‌سازی کامل یا پاک‌کردن داده مربوط به همان سایت را آزمایش کنید. اگر چند شبکه مختلف هم نسخه قدیمی می‌گیرند، مسیر انتشار، CDN یا کش واسطه محتمل‌تر است.
در هدرها به Cache-Control، Age، ETag و Last-Modified نگاه کنید. Age در صورت وجود می‌تواند سن پاسخ کش‌شده را نشان دهد، اما نبود آن کش را رد نمی‌کند. ETag یک شناسه اعتبارسنجی است و لزوماً هش محتوا نیست. از یک هدر به‌تنهایی درباره محل قطعی کش نتیجه نگیرید.
اگر CDN دارید، فایل جدید را در مبدأ تأیید کنید و سپس فقط همان URL را با ابزار purge ارائه‌دهنده پاک‌سازی کنید. نتیجه و زمان انتشار purge در سرویس‌های مختلف متفاوت است؛ دوباره از چند مسیر امتحان کنید. دسترسی مستقیم به IP مبدأ را فقط با روش امن و مجاز سرویس انجام دهید، چون گواهی و نام میزبان باید درست بررسی شوند.

۴. برای انتشار بعدی از نام نسخه‌دار استفاده کنید

به جای رونویسی پی‌درپی release.zip، هر نسخه تأییدشده را با نام تازه منتشر کنید، مثلاً:
کد / دستورrelease-2026-11-01.zip release-2026-11-04.zip
فایل جدید را کامل آپلود و هش آن را بررسی کنید، سپس لینک صفحه دانلود را به نام جدید تغییر دهید. تا زمانی که کاربران به لینک قدیمی نیاز دارند آن فایل را مطابق سیاست خود نگه دارید. نسخه‌های تازه نباید با همان نام قبلی محتوای متفاوت داشته باشند اگر هدر کش طولانی و immutable دارند.
گاهی افزودن ?v=2 جواب می‌دهد، اما همه CDNها و تنظیمات، query را در کلید کش لحاظ نمی‌کنند. نام فایل متفاوت معمولاً قابل پیش‌بینی‌تر است. خود صفحه‌ای که لینک را نمایش می‌دهد هم ممکن است کش شده باشد؛ بعد از تغییر لینک، محتوای واقعی آن صفحه را از مرورگر دیگر بخوانید.

۵. موفقیت را با دانلود واقعی ثابت کنید

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

دیدگاه‌ها (۰)

دیدگاه‌های تاییدشده و پاسخ‌های تیم نت‌آرام