سلام میخواستم یه بخش درست کنم تو سایتم که لینک های دانلود تا زمانی که کاربر مبلغ آن را پرداخت نکرده غیرفعال باشد و بعد از پرداخت برای آن کاربر فعال شود ولی نمیدانم باید چگونه آن را پیاده سازی کنم و از شما تقاضا دارم مرا راهنمایی کنید
سلام سایتتون وردپرسی هستش؟
شاید بشه از این کار ابلهانه استفاده کرد که security access رو با کد عوض کنی و read رو برداری یک چیزی مثل این:
https://docs.microsoft.com/en-us/dotnet/api/system.io.file.setaccesscontrol?view=netframework-4.8
ولی کار درست رو چندجا توی چندتا سرور دیده بودم که آدرس Url داینامیک بود مثلاً بود domain/download?efjbuw
این طوری یک فایل مثلاً یک گیگی رو نمی شه برد توی steamreader در رم ذخیره کرد مثلاً.
آخر نفهمیدم چه کار کرده بودند
اگر کسی بلده فقط اشاره کنه ما بریم دنبالش
چون منم احتیاج دارم
ولی فکر کنم از این کار بشه استفاده کرد
منتها موندم مثلاً شما یک فایل یک گیگابایتی رو چطور می خوای ببری توی steam?
سرور نترکه!
مهندس!
شما فکر کن یکی اومد و پرداخت کرد و شما می خواهی فایل رو بهش بدی. آدرس مستقیم فایل رو بهش می دی؟ اینطوری فرد این آدرس رو به صد میلیون نفر دیگه هم میده!!!!!!!!!!!
بهترین کار ارائه یک آدرس یونیک از فایل موردنظر به هر فرد هست. بازم این مشکل پیش میاد که اگر از استیم استفاده کنیم برا یک فایل یک گیگابایتی سرور کرش نمیکنه؟
ن عزیزم ادرس مستقیم فایلو بهش نمیده فقط تا اون متد کاربر میبره جلو ادرس مستقیمو بهش نمیده این متدی که گذاشتم فقط فایلو بر میگردونه ادرس مستقیم نمیده
public FileResult Download() { byte[] fileBytes = System.IO.File.ReadAllBytes(@"c:\folder\myfile.ext"); string fileName = "myfile.ext"; return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName); }
خوب مهندس صحبت من هم همینه این روش تقریباً مشابه لینکی هست که چند پست قبل گذاشتم. اما نکته اینجاست که اگر فایل شما حجیم باشه، (بالاخره داری میبریش توی رم سرور). اونوقت مشکل پیش نمیاد؟
شما گفتید نگران پخش شدن لینک دانلود بین همه هستید این راهش هست که پخش نشه .شما باید نگران فضای هاستتون باشید ینی یه فضای کافی در نظر بگیرید برای هاستتون و گرنه هیچ مشکلی پیش نمیاد
اگه شما یک سرور با مثلاً رم 16رو برا سرویس وبتون در نظر بگیرین (رم خیلی گرون شده عملاً نمیشه بیشتر به سرور وب رم داد) و بخواین یک دانلود سنتر برا خودتون داشته باشین( یا حتی یک مدیا سرویس مثل فیمیلو و یا ... که میان فیلم رو قطعه قطعه می کنن و بعد پاس می دن به کلاینت) اگر تعداد مثلاً 500 نفر همزمان بخوان از سرویس شما استفاده کنن (که عجیب نیست) سرور کرش می کنه.
نکته و یا سوال اینجاست دانلود سنتر ها چکار می کنن که یک آدرس یونیک برا هر کار اون هم به مدت محدود برای یک فایل در نظر می گیرن؟ مسلماً توی رم نمی برنش.
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)