پرش به مطلب اصلی

آموزش فعال‌سازی Secure Download

برخی اوقات برای مشاهده و دانلود محتواها نیاز است تا محدودیت دسترسی تعریف شود. در این‌ صورت بدون واردکردن مجوز دسترسی، کاربران نمی‌توانند فایل‌ها را مشاهده یا دانلود کنند. ازجمله این موارد می‌توان به ویدئو دوره‌های آموزشی اشاره کرد که به پرداخت هزینه برای دسترسی به آن‌ها نیاز است.
برای این‌ کار نیازی نیست کاربران به فایل‌های موجود در هاست دانلود دسترسی مستقیم داشته باشند؛ بلکه برای آن‌ها باید لینک اختصاصی تولید شود. برای این منظور می‌توانید از قابلیت Securedownload استفاده کنید.

برای این‌ کار مراحل زیر را دنبال کنید:

۱. ابتدا در مسیر هاست دانلود پوشه public_html را انتخاب کنید و فایل‌های مدنظرتان را به این پوشه انتقال دهید.

۲. سپس، از‌طریق تیکت درخواست خود را به تیم پشتیبانی ارسال کنید تا کارشناسان پارس‌پک برای فایل‌های این مسیر قابلیت Securedownload را فعال کنند.

۳. پس از فعال‌سازی Securedownload، تیم پشتیبانی کد Secure را برایتان ارسال می‌کند که از آن برای تولید لینک دانلود با دسترسی محدود می‌توانید بهره ببرید.

۴. بعدازآن، به‌منظور ایجاد لینک دانلود باید اسکریپتی در وب‌سایتتان قرار دهید تا کاربران با مراجعه به آن، لینک دانلود فایل مدنظر را دریافت کنند.

۵. درادامه با استفاده از فایل اسکریپت ساده زیر، لینک Securedownload را ایجاد کنید:

۶. سپس، فایل اسکریپت را در وب‌سایت ایجاد کنید و محتوای کد ارائه‌شده را در آن قرار دهید و مانند مثال زیر این کد را اصلاح کنید:

example usage

$secret = 'the_secret_key_configured_in_nginx';
$baseUrl = 'http://example.com';
$path = '/path/to/file.zip';
$ttl = 120; //no of seconds this link is active
$userIp = '195.99.99.99'; // normally you would read this from something like $_SERVER['REMOTE_ADDR'];

secret: پس از فعال‌سازی قابلیت Securedownload، کارشناسان پارس‌پک کد Secret را ازطریق تیکت به شما ارائه می‌دهند که باید در این قسمت قرار دهید.
baseUrl: در این قسمت، آدرس هاست دانلود را وارد کنید.
path: در بخش path، مسیری را وارد کنید که قابلیت Secure Download روی آن فعال‌ شده است.
ttl: این ویژگی مدت‌زمان اعتبار لینک دانلود است که با‌توجه‌به نیازتان، می‌توانید مقدار آن را به ثانیه وارد کنید تا پس از گذشت مدت‌زمان مشخص‌شده، لینک دانلود منقضی شود.
userip: در این قسمت، آدرس آی‌پی ثابتی را می‌توانید وارد کنید تا فقط برای آن آدرس لینک دانلود معتبر باشد؛ درغیراین‌صورت، مقدار $_SERVER['REMOTE_ADDR'] را قرار دهید تا برای کاربر درخواست‌دهنده دانلود لینک ارائه‌شده معتبر باشد و با آدرس آی‌پی‌های دیگر دانلود‌کردنی نباشد. برای مثال، روی هاست دانلود (با آدرس dl.sepehryr.ir) دایرکتوری‌ای به‌ نام lpic1 در مسیر public_html ایجاد کردیم و فایل ویدئویی به‌ نام parspack.mp4 را در آن قرار دادیم.

  • مسیر مقدار baseUrl معادل https://dl.sepehryr.ir است.
  • مقدار path برابر /lpic1/parspack.mp4 است.
  • کد Secure ارائه‌شده برای این مسیر، معادل LPeCzpT4 است.
  • زمان ttl برابر ۸۶۴۰۰ قرار داده شده است تا لینک تولیدشده به مدت یک روز معتبر باشد.
  • برای اینکه لینک دانلود فقط برای کاربر درخواست‌دهنده فعال شود و برای سایر کاربران نامعتبر باشد، مقدار userIP معادل $_SERVER['REMOTE_ADDR است.

نتیجه اسکریپت به‌صورت زیر خواهد بود:

۷. این اسکریپت را با عنوان دلخواه (generate.php) در وب‌سایت خود (مانند sepyr.ir) قرار دهید. درصورت اجرای آن، لینک دانلود فایل تولید می‌شود:

۸. بنابراین، ازطریق لینک تولید‌شده امکان دانلود فایل فراهم می‌شود. همچنین، این لینک فقط برای آی‌پی درخواست‌دهنده فعال‌‌ و پس از یک روز منقضی خواهد شد.

مستندات: http://nginx.org/en/docs/http/ngx_http_secure_link_module.html

نکته:

راهکار دیگر برای فعال‌سازی Securedownload، استفاده از Redirect Mode در تنظیمات افزونه WooCommerce است. در این روش، لینک اصلی برای کاربرانی نمایش داده خواهد شد که فایل را خریده‌اند.