ذخیره اسناد و مدارک با استفاده از SQL Server FILETABLE

7-تیر-1402 / خواندن 4 دقیقه

با سلام 
چالش این که چگونه از  فایلها ومدارکی که کاربران یک سایت آپلود میکنند نگهداری و محافظت کنیم رو تقریبا هر برنامه نویسی با آن مواجه شده.
تو این مقاله قصد داریم به یک راه حل برای این چالش بپردازیم. و امیدوارم گره ای مشکلات برنامه نویسان dotnet رو باز کنه.

 البته راه حل رو بلد باشیم میتونیم با هر زبان برنامه نویسی اون رو پیاده سازی کنیم.

توی dotnet راه سادش اینه که توی wwwroot فایل ها رو نگه داریم که هم راه حل ساده ای هست هم دسترسی به اسناد(هرگونه فایل) آسونه.

ولی اگه این اسناد براتون اهمیت زیادی داره این راه رو پیشنهاد نمیکنم چون خیلی احتماش زیاده که هنگام پابلیش یا هر اشتباهی ک ممکنه انجام بدیم این اسناد رو از دست بدیم.

بعد از کلی پیگیری و تحقیق متوجه شدم که میتونم اسناد خودم رو توی sql  ذخیره کنم. این کاره دقیقا به همون اندازه که اطلاعات دیگه ای رو ذخیره میکنم امن هست و میتونم مطمئن باشم که مشکلی برای اسنادم ایجاد نمیشه.

برای این کار ما میتونیم از قابلیت filestream در sqlserver  استفاده کنیم.

نکته :

قابلیت filestream  رو فقط توی ویندوز میشه فعال کرد.

به همین خاطر کل اینترنت رو به دنبال یک  orm  که بتونه توی sqlserver با کد #c جداول filetable  ایجاد کنه رو گشتم ولی متاسفانه چیزی پیدا نکردم.

اینجا بود که تصمیم گرفتم یک mini orm خودم درست کنم که شاید به کسی هم خورد.

میتونین اینجا کلیک کنین و سورس کد رو در github مشاهده و دنبال کنید.

 

برای راه اندازی برنامه SQL Server Configuration Manager رو که در ویندوز همراه با نصب sql در اختیار داریم باز میکنیم, و توی پنجره باز شده روی سرویس sql خود راست کلیک و سپس روی Properties کلیک میکنیم.

همچین پنجره ای براتون باز میشه.

به تب FILESTREAM  برید و تمامی checkbox ها رو مطابق عکس تیک بزنید و سپس برروی ok کلیک کنید.

 

بعد از انجام این کار باید پیکربندی رو تأیید بکنیم. 

با اجرا کردن کد زیر در sql این پیکربندی هم تأیید میشه.

exec sp_configure ;
exec sp_configure @configname = 'filestream access level';
exec sp_configure filestream_access_level,2
reconfigure

در تصویر زیر، میتونیم ببینیم که دسترسی FILESTREAM رو هم برای استریم ویندوز و هم برای T-SQL فعال کردیم.

 

تا اینجا که کار زیرساختمون تمومه. 

واقعا باید ی چای بخورم الان دیگه. ادامه مقاله رو هم بزایم برا فردا. 

 

.net dotnet c# filetable sqlserver sql