Sokan Academy

مشکل شمارش تعداد استفاده از لینک دانلود وقتی کاربر از دانلود منیجر استفاده میکنه

مشکل شمارش تعداد استفاده از لینک دانلود وقتی کاربر از دانلود منیجر استفاده میکنه

امروز داشتم روی یک پروژه کار می‌کردم که توی اون باید تعداد دفعه ای که یک لینک دانلود استفاده شده رو ذخیره می‌کردم و نمیذاشتم لینک از یه تعداد مرتبه بیشتر (مثلا ۱۰ مرتبه) استفاده بشه. خب قابلیت پیاده سازی شد و همه چیز به نظر درست میرسید. مرورگر لینک رو دانلود می‌کرد و شمارنده یکی اضافه می‌شد. اما متوجه شدیم که وقتی برای دانلود از اینترنت دانلود منیجر استفاده می‌کنیم شمارنده درست کار نمیکنه. بعد از بررسی فهمیدم که دانلود منیجر به طور هم‌زمان چند ریکوئست رو ارسال میکنه تا سرعت دانلود بیشتری رو داشته باشه. در واقع توی هر ریکوئست قسمت مشخصی از فایل رو دانلود میکنه. با استفاده از فیلد Range در header ها میتونیم از این قابلیت استفاده کنیم. عملا وقتی یک دانلود رو نگه میدارید و دوباره اون رو resume می‌کنید، پشت صحنه این فیلد پر میشه. برای مثال اگر بخوایم از بایت ۱۰۰ تا ۲۰۰ یک فایل رو دانلود کنیم این فیلد در هدر به صورت زیر پر میشه:

Range: bytes=100-200

در حال حاضر راه حلی که من در دست دارم غیر فعال کردن این دانلود های موازیه که البته قابلیت pause و resume کردن رو هم از بین میبره. پس شما هم اگر با این مشکل مواجه شدید باید بین شمارش کاملا دقیق و یا قبلیت ادامه دادن دانلود یکی رو انتخاب کنید. البته که من هنوز دنبال یک راه بهتر هستم و سعی میکنم اگر چیزی پیدا کردم همینجا با شما به اشتراک بذارم.

راه حل من:

من همون قابلیت resume رو برای دانلود منیجر بستم. شما اگر توی پاسختون هدری به صورت "Accept-Ranges" ":" none بفرستید دانلود منیجر به صورت خودکار فقط یک کانکشن برقرار میکنه. امیدوارم این مطلب بهتون کمک کرده باشه

این محتوا آموزنده بود؟
طراحی سایت

sokan-academy-footer-logo
کلیه حقوق مادی و معنوی این وب‌سایت متعلق به سکان آکادمی می باشد.