ورود

View Full Version : سوال: کپی یک فایل در سرور با استفاده از IP



khorsandreza
پنج شنبه 14 شهریور 1392, 14:32 عصر
سلام
دوستان من می خواستتم فایلی را از یک مسیر خاص در کامپیوتر محلی (کلاینت) در سرور (یا کامپیوتر متصل در شبکه) کپی کنم با توجه به این که سطح دسترسی من تعریف شده و اجازه دسترسی خواندن و نوشتن را دارم حال می خواهم فایل را در یک پوشه خاصی بدون آنکه پوشه به اشتراک گذاشته شود و یا MapDrive تعریف شود کپی کنم
مثال

CopyFile('C:\MyFile.text','192.168.1.1:E:\Book\MyF ile.Text')

khorsandreza
پنج شنبه 14 شهریور 1392, 20:10 عصر
مشکل کجاست الان؟
خوب Map کن و بعد کپی کن و بعد Disconnect کن و تمام.
سلام
مشکل شد دو تا
یک من اصلا نمی دانستم که میشه بصورت داینامیک میشه کانکت شد و سپس قطع کرد
علت اینکه این کار را انجام میخواهم بدم اینکه مقدار زیادی اطلاعات تصویری دریک سرور ذخیره شده این فایل ها گاها سایزشان به 500MG هم می رسه (حدود 10 هزار فایل) صوتی تصویری و عکس هست نمیخواهم کاربر بصورت فیزیکی به پوشه فایل ها دسترسی داشته باشداگر کار کپی حذف قرار هست انجام بگیره از طریق برنامه باشه .
حال یک : شما زحمت بکشین روشی راکه بالا فرمودین توضیح بدین (مثال باشه که نور علی نور میشه)
دو : اصلا روشی که ذکر کردم امکان پذیره ؟

یوسف زالی
پنج شنبه 14 شهریور 1392, 20:17 عصر
با اجازه حمزه جان؛
برای این کار اگر دارید از دیتابیس اس کیو ال استفاده می کنید خودش این امکانات رو در اختیارتون قرار می ده. البته ورژن 2008 به بالاتر

khorsandreza
پنج شنبه 14 شهریور 1392, 21:34 عصر
سلام اقای یوسف
من در دیتابیس فقط مسیر ذخیره سازی فایل را ثبت می کنم نه خود فایل را اگه بخواهم فایل را داخل دیتابیس ذخیره کنم به چند ترابایت خواهد رسید ولی اگه اسکیو سرور میتونه عملیات کپی و .. هیچ اطلاعاتی در این مورد ندارم .

یوسف زالی
پنج شنبه 14 شهریور 1392, 21:56 عصر
سلام دوست عزیز.
اس کیو ال در نسخ جدید قابلیت های جدیدی اضافه کرده که یکی از اونها این قابلیت رو در اختیار شما می گذاره که فایل بدون این که در دیتابیس ذخیره بشه، فولدری رو معین می کنید که فایل ها در اون ذخیره می شند، این قابلیت نام File Streaming داره، این فولدر تحت اختیار دی بی ام اس قرار می گیره و عملیات رو بصورت اتمیک و ACID انجام می ده (در این خصوص خیلی تحقیق نکردم)
به این ترتیب یوزر ها دسترسی به این فولدر نخواهند داشت چون اصلا Share نیست. یوزر ها با استفاده از کوئری ها یا اس پی هایی که می گیرند از دی بی ام اس درخواست فایلی رو می کنند و باقی ماجرا در اختیار انجین هست و یوزر روش دخالتی نداره، در این حالت قفل کردن فایل ها و دسترسی ها متنوع روی اکشن ها از طریق دی بی ام اس انجام می شه.
برای بک آپ گرفتن هم کافیه همون فولدر رو کپی کنید یا این که از دی بی بک آپ یا دیتچ بگیرید ...

برای اطلاعات بیشتر می تونید در تالار اس کیو ال در قسمت TSQL پستی بگذارید و از طریق دوستانی مثل سلیم موضوع رو پیگیری کنید.
موفق و موید باشید.

hadisalahi2
شنبه 16 شهریور 1392, 10:12 صبح
اتفاقا من هم روی همین موضوع دارم کار میکنم
به جاهایی هم رسیدم
اگه نتیجه قطعی رو گرفتم ، حتما کدش رو اینجا میزارم

من هم از همین روش Map کردن میخوام استفاده کنم

khorsandreza
شنبه 16 شهریور 1392, 14:44 عصر
اتفاقا من هم روی همین موضوع دارم کار میکنم
به جاهایی هم رسیدم
اگه نتیجه قطعی رو گرفتم ، حتما کدش رو اینجا میزارم

من هم از همین روش Map کردن میخوام استفاده کنم
سلام
ممنون از توجه تان ولی من نمی خوام از Map درایو استفاده بشه در این شیوه کاربر به پوشه اسناد دسترسی داره می تونه عملیات حذف و یا دسترسی غیر مجاز داشته باشه من میخوام ار طریق IP انجام بگیره دسترسی به صورت Map سخت نیست ولی باز هم خوشحال میشم تجربیات خودمان را به شتراک بگذاریم هم خودمان و دیگر دوستان بهرمند میشن

Felony
شنبه 16 شهریور 1392, 14:57 عصر
همون File Streaming کارتون رو راه میندازه ، برای جلوگیری از دسترسی غیر مجاز هم میتونید سناریوهای مختلفی پیاده کنید ، مثلا استفاده از Active Directory به عنوان Authenticateor و ترکیب اون با SQL Server یا بررسی IP ها در برنامه یا فایروال و ...

hadisalahi2
شنبه 16 شهریور 1392, 16:02 عصر
من هم دقیقا برنامه ای دارم مینویسم ، شبیه برنامه شما که کارش آرشیو کردن فایل در سرور هستش

تا الان خیلی این در و اون در زدم تا روش مناسبی رو پیدا کنم

اما متاسفانه هیچیه هیچی

تنها روشی که به نظر من بهتر از بقیه هستش همین Map کردن هستش
توی این روش ، پوشه اشتراکی ، فقط در کامپیوتر کاربر استفاده کننده نمایش داده میشه
و نسبت به بقیه روش ها سرعت بالاتر و امنیت نسبتا بهتری داره

بازم اگه شما روش بهتری پیدا کردید ، ما رو بی خبر نگذارید

khorsandreza
شنبه 16 شهریور 1392, 17:04 عصر
نها روشی که به نظر من بهتر از بقیه هستش همین Map کردن هستش
توی این روش ، پوشه اشتراکی ، فقط در کامپیوتر کاربر استفاده کننده نمایش داده میشه
و نسبت به بقیه روش ها سرعت بالاتر و امنیت نسبتا بهتری داره

من نمی خوام حتی کاربری که ثبت اطلاعات می کنه بصورت فیزیکی به پوشه ارشیو دسترسی داشته باشه بنظرم کار خطرناکی است یک نمونه کپی کردن فایل پیدا کردم که خواسته مرا براورده می کنه دارم روش کار می کنم .دیگر با این روش نیاز نیست شما پوشه را به اشتراک بگذارید و یا MapDrive بسازید . کاربر آرشیو فایل ها را انجام میده بدون آنکه بصورت مستقیم به پوشه آرشیو دسترسی داشته باشه فقط برنامه خودش مدیریت می کنه فکر می کنم تا فردا تست نهائی را بر روی شبکه انجام خواهم داد درست جواب بده در همین تاپیک برای استفاده دوستان Upload خواهم کرد

hadisalahi2
یک شنبه 17 شهریور 1392, 10:16 صبح
اگه این کار رو بکنی که واقعا ای ول داری
خداییش من خیلی دنبال این موضوع گشتم

فقط اینکه سرعت کپی کردنش چطوریه؟

khorsandreza
دوشنبه 18 شهریور 1392, 00:30 صبح
سلام
آقای هادی روش های مختلفی را تست کردم قبلا توضیح بدم مثالی را از همین سایت دانلود کرده بودم برای کپی فایل که پیشرفت کار را نشان میداد در سطرهای 43 تا 46 تغییرات اعمال روش های زیادی را تست کردم سطر 46 درست جواب میده پوشه ای اکه به اشتراک گذاشته نشده فایل کپی میشه فقط یک ایراد که داره اگه در بخش Run ویندوز دستوری به این شکل نوشته بشه (IPServer\e$\MyFolder) با آن که پوشه به اشتراک گذاشته نشده محتوای پوشه نشان میده از آنجائی اطلاعات جامعی از مدیریت شبکه ندارمپیشرفت چندانی حاصل نشد لذا بصورت ناقص آپلود کردم تا دوستان راهنمائی بفرمایند

بخش هائی تست کردم بشکل زیر است عقل ناقص ما دیگه هنگ کرد

// Dest := '\\Administrator:Fanavari@KanonServer\\e$\\mvf\\1. avi';
// Dest:='\\localhost\'+Copy(ED_Source.Text,1,1)+'$\' +Copy(ED_Source.Text,4,Length(ED_Source.Text));
// Dest:= '\\Administrator:Fanavari@KANONSERVER\e\mvf\'+ ExtractFileName(Source);
Dest:= '\\ServerName\e$\'+ ExtractFileName(Source);


حالا شما تست کنید ببینید :ناراحت:

Mask
دوشنبه 18 شهریور 1392, 13:38 عصر
یکی از مشکلات امنیتی ای که در ویندوز وجود دارد اینه که درایو های سیستم بطور پیش فرض به اشتراک گذاشته می شوند و از طریق تایپ علامت $ پس از نام درایو می توان به کلیه محتویات آن دسترسی داشت.مثلا با تایپ $c در نوار آدرس می توان وارد این درایو شد.
روش فعال و غیر فعال کردن اشتراک پیش فرض(default share) در ویندوز xp و سون یک مقدار متفاوت است. ولی از طریق دستورات command prompt در ویندوز xp و سون یکسان است. این دستورات را هم می توان در run وارد کرد و هم در CMD . برای غیر فعال کردن یک share می‌توان از دستور زیر استفاده کرد.

net share sharename /DELETE
به طور مثال این دستور برای برداشتن اشتراک پیش فرض درایو c به صورت زیر خواهد بود.

net share C$ /DELETE
با توجه داشت که تاثیر اجرای دستور فوق تا زمان اولین restart است. یعنی بعد از ریست شدن کامپوتر دوباره این share ها وجود خواهند داشت.
برای غیر فعال کردن دائمی به اشتراک گذاری پیش فرض باید به صورت‌های زیر عمل نمود: ویندوز ۷:
روی MyComputer کلید سمت راست را زده و گزینه‌ی Manage را انتخاب کرده سپس از صفحه‌ی Compute management وارد گزینه‌ي Shared Folers شده آنگاه با زدن کلید سمت راست روی درایو مربوطه یا $ADMIN و انتخاب گزینه‌ی Stop sharing این Share غیر فعال می‌شود. برای دیدن یک آموزش تصویری به این صفحه (http://www.sysprobs.com/disable-administrative-shares-windows-7-lets-data-secret) می‌تواند مراجعه شود.
ویندوز XP:
باید یک کلید رجیستری را به صورت زیر تغییر دهید و یا ایجاد کنید

Hive: HKEY_LOCAL_MACHINE
Key: SYSTEM\CurrentControlSet\Services\LanManServer\Par ameters
Name: AutoShareWks
Data Type: REG_DWORD
Value: 0

hadisalahi2
سه شنبه 19 شهریور 1392, 10:15 صبح
سلام
رضا جان ممنون که آپلود کردی
من یه مدتی نبودم

حتما تا فردا تست میکنم و خبرش رو میدم
فقط اینکه شما این روش حذف Sharing رو اجرا کردید؟
برنامه جواب میده؟

در ضمن برای باز کردن فایل به صورت مستقیم از سرور هم ، همین روش جواب میده؟

khorsandreza
سه شنبه 19 شهریور 1392, 11:32 صبح
اره خواند و نوشتن روی سرور اشکال نداره فقط ایراد امنیتی که آقای گلد توضیح دادند هست البته فعلا خودم نیز به همین شیوه استفاده می کنم

hadisalahi2
چهارشنبه 20 شهریور 1392, 10:22 صبح
خوب مشکل امنیتی رو با این روش که گفته حل نکردی؟
در ضمن یک سوال ؟
اگر فرضا پوشه مورد نظرت در سیستم سرور در یک مسیر به غیر از فرضا درایو ریشه مثل e$ باشه
بازم ، باید مسیر رو در ادامه بنویسیم
مثلا اینطوری
e$:\UserPic

khorsandreza
چهارشنبه 20 شهریور 1392, 23:39 عصر
سلام
علامت $ بجای : می باشد فرقی نمی کنه مثلا F$\book\Temp
ومتاسفانه نتونستم مشکل امنیتی را حل کنم الته دارم به کمک یکی از دوستان مجرب کار می کینم درست بشه اپلود می کنم دو سه روز در گیر یک کار دیگه هستم انشا... درست میشه

hadisalahi2
پنج شنبه 21 شهریور 1392, 09:32 صبح
الان این موارد دوستمون رو اجرا کردی؟
باز هم با زدن $ بعد از حرف نام درایو ، باز میشه؟

من هم خیلی دنبال این موضوع میگردم ، حتما حتما آپلود کنی

masoud.rhb
شنبه 25 بهمن 1393, 08:24 صبح
سلام
اگه ممکنه روش map کردن رو با برنامه نویسی برام توضیح بدین
چون در حال حاضر دیتابیس روی اکسس پیاده سازی شده متاسفانه و امکان تبدیل به sql وجود نداره نمیتونم از file stream استفاده کنم؛ واقعا میشه بدون شیر کردن به پوشه فایل ریخت و ازش فایل برداشت؟؟؟؟؟؟؟؟ پس امنیت شبکه چی میشه؟؟؟!!!!!!
اگه کد بزارینم که دیگه آخرشین
مرسی