مقدمة
⑴ في الأماكن العامة مثل غرف القراءة الإلكترونية وغرف الكمبيوتر ومقاهي الإنترنت، بسبب الاستخدام المتكرر وتأخر الصيانة، من الشائع أن تتلف أنظمة الإخراج مثل محركات الأقراص المرنة، وغالبًا ما يتم اكتشاف الإخراج عندما تحتاج إلى الإخراج البيانات المعالجة هناك الكثير من الإحباط عندما لا تعمل المعدات، ومن أجل توفير التكاليف، لا تحتوي العديد من غرف الكمبيوتر على جميع أجهزة الإخراج اللازمة على أجهزة الكمبيوتر المتصلة بالشبكة.
⑵ مع ازدياد شعبية أجهزة الكمبيوتر، أصبح الأشخاص يعتمدون عليها أكثر فأكثر، ولا يمكن فصل العديد من المهام المكتبية عن أجهزة الكمبيوتر. بمعنى آخر، بدأت أجهزة الكمبيوتر الخاصة بالعاملين في المكاتب في تخزين الكثير من البيانات المكتبية والخاصة المهمة. وفي معظم الحالات، تكون هذه البيانات فريدة من نوعها، مما يعني أن أصحابها لا يقومون بعمل نسخة منها وتخزينها على أجهزة كمبيوتر مختلفة، ويعتمد أمانها كليًا على استقرار أجهزة الكمبيوتر الخاصة بأصحابها.
⑶ أدت شعبية الإنترنت إلى تقصير المسافة بين الأشخاص وجعل التواصل أكثر سهولة، ومع ذلك، نحتاج إلى الوصول إلى الإنترنت كل يوم في أماكن مختلفة مثل المنازل والمكاتب ومقاهي الإنترنت. كيف يمكننا الاستمرار في تحرير مستند؟ ربما يمكنك حمل هذه البيانات معك من خلال جهاز تخزين متنقل مثل محرك أقراص فلاش USB أو قرص ثابت محمول، ولكن ليس من المناسب جدًا حمل جهاز آخر من هذا القبيل، خاصة القرص الصلب المحمول، وأماكن مختلفة، وأجهزة مختلفة ، وأنظمة التشغيل المختلفة ليست مناسبة لك. دعم محركات أقراص USB المحمولة أو محركات الأقراص الثابتة المحمولة ليس هو نفسه، كما تختلف مهارات الكمبيوتر لدى المستخدمين.
...
وبسبب هذه الحقائق، ظهر التخزين الشبكي كضرورة.
حاليًا، هناك العديد من الطرق لتنفيذ تخزين الشبكة، مثل البريد الإلكتروني وFTP وأماكن الشبكة وHTTP وما إلى ذلك. من بينها، يتمتع FTP بأقوى الوظائف، لكن استخدامه معقد بعض الشيء، حيث تكفي الكثير من الإعدادات لردع العديد من الأشخاص، خاصة عندما يكون عدد المستخدمين غير متوقع، وستكون الإعدادات للمستخدمين ذوي الاحتياجات الخاصة أكثر تعقيدًا ؛ البريد الإلكتروني مألوف للجميع، ولكن داخل الشبكة المحلية، فهو ليس طريقة جيدة لتبادل المستندات والمعلومات المالية والعمالية وغيرها بهذه الطريقة، علاوة على ذلك، عندما يكون ملفك كبيرًا بدرجة كافية، سيكون الأمر قاتلاً التأثير على مساحة البريد؛ يمكن مشاركة جيران الشبكة عن طريق تحديد مجلدات الويب والملفات الموضوعة على هذا الجهاز، ويمكن للمستخدمين ضمن نطاق معين الوصول إلى هذه الملفات، ومع ذلك، فإن نطاق هذه الطريقة محدود جدًا عادةً يمكن للآخرين الوصول إلى نفس عنوان مقطع DNS بسهولة، وخاصةً المستخدمين على الإنترنت، وهو أمر صعب الاستخدام، ومثل البريد الإلكتروني، ليس من السهل استخدامه في كثير من الأحيان. تحتوي طرق تخزين الشبكة المذكورة أعلاه أيضًا على عيب مشترك: وهو أنه لا يمكن للمسؤولين أن يكون لديهم فهم واضح لاستخدام الملفات المخزنة في وحدة تخزين الشبكة، ويمكنهم فقط تحديد ما إذا كانوا يريدون تباعدها بناءً على وقت تخزين الملفات .
تقدم هذه المقالة طريقة تخزين شبكة بسيطة نسبيًا يتم تنفيذها من خلال HTTP. يتم تنفيذ هذه الطريقة على النظام الأساسي WINDOWS من خلال IIS وASP/ASP.NET، وهي ليست سهلة الاستخدام ويمكنها تحميل أي نوع من الملفات فحسب، بل يمكنها أيضًا تحديد المساحة التي يستخدمها المستخدم يمكن للمسؤولين إدارة 20 بايت ومئات الميجابايت، بالإضافة إلى ذلك، يتم ضمان أمان الملفات أيضًا. سيساعدك فهم بنية البيانات في النقطة الرئيسية الثانية وكود مصدر التحميل في النقطة الرئيسية الثالثة من هذه المقالة على إنشاء مساحة تخزين شبكية بنفسك، ولن تضطر إلى الاعتماد على مساحة تخزين الشبكة المجانية المتوفرة في السوق لتخزين البيانات الحساسة الملفات الموجودة داخل الشبكة، سلامتك بين يديك.
نظرة عامة والوظائف الأساسية
قم بتثبيت الخادم كمضيف لتخزين الشبكة يستخدم نظام التشغيل نظام التشغيل Windows وهو مزود بـ IIS5.0. قم بإعداد خدمة الويب وإنشاء موقع ويب افتراضي ضمن موقع الويب الرئيسي يشير إلى مساحة تخزين الشبكة، مثل : د:netspacespacenetmyspace. يتم وضع جميع أكواد مصدر asp وasp.net ضمن موقع الويب الرئيسي (مثل: c:inetpubwwwroot)، وسيقوم d:netspacespacenetmyspace بوضع الملفات التي تم تحميلها من قبل المستخدمين (يجب أيضًا إجراء تغييرات على موقع الويب الافتراضي في اضبط كود المصدر وفقًا لذلك).
1. قاعدة البيانات والبنية الأساسية المستخدمة:
⑴ ftpsapce.mdb: يحتوي على قائمة مستخدم الجدول، البنية الأساسية للجدول:
المعرف: رقم التسلسل، يتم إنشاؤه تلقائيًا؛
Xh: إنشاء حساب المستخدم والتسجيل والتحقق؛
Xm: اسم المستخدم والتسجيل وإنشاء التحقق؛
Kl: إنشاء كلمة مرور المستخدم والتسجيل والتحقق؛
Maxspace: يتم استخدام الحد الأقصى لمساحة المستخدم للتسجيل.
Nowspace: مقدار المساحة التي يشغلها المستخدم حاليًا؛
Lastaccessday: آخر وقت وصول للمستخدم، ليرجع إليه المسؤولون عند إدارة المساحة؛
من اليوم: وقت تسجيل المستخدم؛
Checkx: علامة التحقق من المستخدم.
⑵ Filelist.mdb: يحتوي على ملفات الجدول، والبنية الأساسية للجدول:
المعرف: رقم التسلسل، الذي يتم إنشاؤه تلقائيًا؛
اسم الملف: اسم الملف، الذي تم إنشاؤه بواسطة نظام التحميل؛
Fsize: قيمة حجم الملف؛
Xh: حساب المستخدم؛
التحديث: وقت التحميل؛
Filescript: وصف الملف، وهو المسار واسم الملف الأصلي عندما يقوم المستخدم بتحميله، للرجوع إليه عند تحميل المستخدم؛
2. الوظائف الأساسية
⑴ يقوم المستخدم بتسجيل الدخول إلى الموقع الرئيسي، ويدخل إلى الصفحة الرئيسية للموقع ، ويعطي المعلومات الأساسية للمستخدم لتسجيل المستخدم.
⑵ سيقوم المسؤول بمراجعة معلومات تسجيل المستخدم وتعيين الحد الأقصى لمساحة الاستخدام للمستخدم.
⑶ يقوم المستخدمون الذين يجتازون المراجعة بتحميل الملفات إلى وحدة تخزين الشبكة. يقوم النظام بتحديد شرعية المستخدم وقانونية الملف، ويقوم بتسجيل الملفات ومعلومات المستخدم التي قام المستخدم بتحميلها في قاعدة البيانات.
⑷ يمكن للمستخدمين المعتمدين إعادة تحميل أو حذف الملفات التي قاموا بتحميلها من خلال وظيفة التنزيل.
⑸ يقوم المسؤول بإدارة مساحة الشبكة بناءً على قاعدة بيانات المستخدم وقاعدة بيانات الملفات.
⑹ يسمح النظام الموسع للمستخدمين المعتمدين بتنزيل الملفات التي تم تحميلها بواسطة المستخدمين المعتمدين.
الكود المصدري الأساسي لوحدة التحميل
محدود بالمساحة. توفر هذه المقالة فقط الكود المصدري الأساسي لوحدة التحميل، إذا كنت بحاجة إلى المزيد من الكود المصدري، فيمكنك طلبه من المؤلف عبر البريد الإلكتروني. في الكود المصدري توجد تعليقات أضافها المؤلف لراحة القراء. (ما يلي مقتطف من upfile.aspx)
<%@ Page Language="VB" Debug="true" %>
<%@ import namespace="System.Data" %>
<%@ import namespace="System.Data.oledb" %>
<أتش تي أم أل>
<script language="vbscript" runat="server">
ملف التحميل الفرعي (المرسل ككائن، e كأحداث)
إذا fileup.postedfile.contentlength<20 ثم
Errors.text="يجب عليك تحميل مثل هذا الملف الصغير، فقط احفظه."
fileinfo.visible=false
خروج فرعي
آخر
Errors.text="التحقق موافق"
fileinfo.visible=true
نهاية إذا
*** ما ورد أعلاه يتحقق من حجم الملف الذي تم تحميله
respace.text = "0"
nowspace.text="0"
*** يشير respace إلى المساحة المتبقية، ويشير nowspace إلى المساحة المستخدمة
dim xh1 كسلسلة =user1.value
dim kl1 كسلسلة =pass1.value
*** يشير xh1 إلى رقم الحساب، ويشير kl1 إلى كلمة المرور
dim objconnstr كسلسلة = "provider=microsoft.jet.oledb.4.0;data source="
& server.mappath("ftpspace.mdb")
*** يجب أن يكون السطران أعلاه هما نفس العبارة في كود المصدر
dim objconn as oledbconnection = new oledbconnection(objconnstr)
تعتيم SQL1 كسلسلة = "اختر * من قائمة المستخدمين حيث xh ='"+xh1+"' و kl ='"+kl1+"'"
تعتيم objrscc كـ oledbcommand= new oledbcommand(sql1,objconn)
objconn.open()
تعتيم objrs كـ oledbdatareader = objrscc.executereader()
dimix كعدد صحيح = 0
خافت كحد أقصى طالما
قاتمة الآن طالما
بينما التاسع = 0
إذا objrs.read() ثم
إذا كان objrs.item("xh")=xh1 إذن
إذا كان objrs.item("kl")=kl1 إذن
إذا كان objrs.item("checkx")=1 إذن
التاسع=التاسع+1
maxs=objrs.item("maxspace")
nows=objrs.item("nowspace")
نهاية إذا
نهاية إذا
نهاية إذا
آخر
تاسعا=-1
نهاية إذا
end while
*** ما ورد أعلاه يحدد ما إذا كان الحساب وكلمة المرور قانونيين
إذا كان ix<=0 حينها
Errors.text="كلمة مرور الحساب خاطئة! أو لم تتم مصادقة المستخدم، يرجى الانتظار حتى يقوم المسؤول بالمصادقة!"
وإلا
إذا كان fileup.postedfile.contentlength>maxs-nows إذن
إذا fileup.postedfile.contentlength>=maxs إذن
Errors.text="طول الملف أكبر من المساحة المخصصة ولا يمكن تحميله!"
آخر
Errors.text="المساحة الحرة غير كافية، يرجى حذف الملفات القديمة!"
نهاية إذا
*** ما ورد أعلاه يحدد مدى توفر مساحة المستخدم
آخر
dim obj4str as string="provider=microsoft.jet.oledb.4.0;
مصدر البيانات = "& server.mappath("filelist.mdb")
*** السطران أعلاه هما نفس البيان في الكود المصدري dim obj4 مثل oledbconnection = new oledbconnection(obj4str)
تعتيم SQL10 كسلسلة = "اختر * من الملفات"
خافت objrc1 كـ oledbcommand = new oledbcommand(sql10,obj4)
obj4.open()
خافت objrsx كـ oledbdatareader = objrc1.executereader()
خافت fn11 طالما =0
بينما objrsx.read()
fn11=objrsx("اسم الملف")
نهاية بينما
خافت fn1 كسلسلة
fn1=cstr(fn11+1)
*** ما ورد أعلاه ينشئ اسم ملف رئيسي فريد للمستخدمين لتحميل الملفات dim objc1str as string="provider=microsoft.jet.oledb.4.0;
مصدر البيانات = "& server.mappath("filelist.mdb")
*** السطران أعلاه هما نفس البيان في الكود المصدري dim objc1 مثل oledbconnection = new oledbconnection(objc1str)
خافت SQL3 كسلسلة = "إدراج في الملفات (اسم الملف، fsize، xh، filescript، upday)
القيم("+cstr(fn1)+"،"+cstr(fileup.postedfile.contentlength)+"،'"
+xh1+"','"+fileup.postedfile.filename+"','"+cstr(now())+"')"
*** الأسطر الثلاثة أعلاه هي نفس العبارة objc1.open() في الكود المصدري
تعتيم objrs1 كـ oledbcommand=new oledbcommand(sql3,objc1)
خافت fn2 كسلسلة
fn2="d:/netspace/spacenet/myspace/"&cstr(fn1)&".zip"
*** أعط المسار المطلق واسم الملف الكامل للملف الذي تم تحميله بواسطة المستخدم fsize.text=cstr(fileup.postedfile. طول المحتوى)
ftype.text=fileup.postedfile.contenttype
fname.text=fileup.postedfile.filename
username.text=user1.value
fileup.postedfile.saveas(fn2)
objrs1.ExecuteNonQuery()
objrs. Close
تعتيم SQL5 كسلسلة = "تحديث قائمة المستخدم المحددة الآن Space = "+cstr (nows+fileup.postedfile.contentlength)+
",lastaccessday='"+cstr(now())+"' Where xh='"+xh1+"'"
*** السطران أعلاه هما نفس العبارة في الكود المصدري
dim objrnc مثل oledbcommand= new oledbcommand(sql5) ، أوبجكون)
objrnc.executenonquery()
respace.text=cstr(maxs-nows-fileup.postedfile.contentlength)&"بايت."
nowspace.text=cstr(nows+fileup.postedfile.contentlength)&"bytes."
*** يتم استخدام ما ورد أعلاه للتحميل، ويتم حساب إجمالي المساحة المستخدمة للمستخدم وإجمالي المساحة المتبقية إذا
نهاية إذا
النهاية الفرعية
</script>
<الجسم>
<form enctype="multipart/form-data" runat="server">
<الجدول>
<tr><td>الحساب:</td><td><input id="user1" runat="server"></td></tr>
<tr><td>كلمة المرور:</td><td><input type="password" id="pass1" runat="server"></td></tr>
<tr><td>الملف:</td><td><input type="file" id="fileup" runat="server"></td></tr>
<tr><td></td><td><asp:button id="upload" onclick="uploadfile" text="Upload"
runat="server"/></td></tr>
</الجدول>
</النموذج><ساعة>
<div id="fileinfo" visual="false" runat="server">
اسم الملف الأصلي:<asp:label id="fname" runat="server"/><br>
حجم البايت:<asp:label id="fsize" runat="server"/><br>
نوع الملف:<asp:label id="ftype" runat="server"/><br>
حساب المستخدم:<asp:label id="username" runat="server"/><br>
المساحة المتبقية:<asp:label id="respace" runat="server"/><br>
المساحة المستخدمة:<asp:label id="nowspace" runat="server"/><br>
حالة التحميل:<asp:label id="errors" runat="server"/>
</div>
*** ما ورد أعلاه يخبر المستخدم بالمعلومات ذات الصلة قبل وبعد تحميل الملف في المتصفح.
</الجسم>
</html>
الاستنتاج
تعتمد الطريقة الموضحة في هذه المقالة على تقنية خالية من المكونات وتأخذ في الاعتبار المزيد من جوانب أمان الملفات والخصوصية الشخصية، وهي مناسبة للاستخدام على نظامي التشغيل Windows Server 2003 وIIS6.0 بسيطة وآمنة، ويمكن توسيعها قليلاً، مثل إضافة رقم المستخدم ورقم المجموعة في قائمة المستخدمين، وإضافة رقم المجموعة في الملفات، يمكنك تعيين أذونات الملف، مما يسهل إرسال الملفات عبر الشبكة والتحقق منها ومشاركتها. . إلى جانب مجموعة الأقراص، سيتم تحسين أمن البيانات نوعيا.