Создайте сервер smb для обмена файлами

В большинстве мест в Интернете объясняется, как подключиться и прочитать данные, размещенные на smb-сервере. Википедия объясняет больше о smb по адресу:

http://en.wikipedia.org/wiki/Server_Message_Block

Итак, что я пытаюсь сделать, так это открыть файл (находящийся в Интернете) из проводника Windows как:

введите здесь описание изображения

Мне нужно добавить эту функциональность в программу, которую я создаю. Если создание такого сервера будет сложным, я думаю, я не буду этого делать, но я хочу попробовать все, что в моих силах. Я нашел эту ссылку, которая может помочь мне сделать то, что я ищу: http://www.codeproject.com/Articles/309936/Csharp-NET-Network-File-System-NFS-Server Но я не могу заставить его работать.

Я буду очень признателен, если у меня будет hello world пример, где я помещаю ip-адрес сервера в Windows, и он показывает мне каталог с именем hello world. Я планирую запустить сервер на компьютере с Windows.

Кроме того, это не обязательно должен быть smb-сервер. Любой тип сервера, который позволит мне просматривать файлы в Windows.


person Tono Nam    schedule 10.09.2012    source источник
comment
Я думаю, что вы сможете найти довольно много материалов о HTTP-серверах, если будете искать. Конечно, если вам нужен авторизованный доступ для записи, ситуация немного сложнее.   -  person tripleee    schedule 10.09.2012


Ответы (3)


По моему опыту, вы не можете подключиться к общему ресурсу SMB за пределами вашей локальной сети. Если вы пытаетесь подключить общий ресурс SMB, вам придется использовать VPN или другой вид туннельного адаптера для подключения.

Но я немного смущен вашим вопросом. Вы ищете пример кода для протокола SMB или вам просто нужен общий ресурс SMB? Попробуйте что-нибудь простое, например, Ubuntu с Samba. Samba — это очень простой общий ресурс SMB, но, как я уже говорил, он не будет работать через Интернет.

person Skinner927    schedule 10.09.2012
comment
Мне нужно, чтобы он работал через Интернет :(. Я создаю пользовательскую программу для клиента, и он хочет иметь возможность открывать файлы на общем ресурсе из Windows. Например, если он сохранит там файл своей базы данных Outlook, это будет хорошо чтобы получить к нему доступ, не загружая и не обновляя его ... Может быть, у него много файлов, и он устал подключаться к медленному vpn - person Tono Nam; 10.09.2012
comment
любой код, который вы пишете, будет просто медленным, вы можете заставить их открыть порты smb, но это плохая плохая плохая идея - person Daniel Powell; 10.09.2012
comment
@TonoNam Может быть, вам стоит подумать о webDav вместо общего ресурса SMB - person Seph; 24.10.2012
comment
Сегодня вы можете иметь общие интернет-ресурсы, Azure даже предоставляет такую ​​услугу через Интернет, VPN не требуется. - person Felype; 05.10.2017
comment
Ответ неверный, я ежедневно использую SMB 1.0/2.0 через Интернет, без VPN. - person Tal Aloni; 29.03.2018

Существует SMBLibrary — серверная библиотека C# SMB 1.0/CIFS и SMB 2 с открытым исходным кодом.

Вы можете реализовать IFileSystem и представить каталог, содержащий файл «hello world» :)

Обратите внимание, что Windows будет подключаться только к серверам, работающим через порт 139 или порт 445, вы не можете указать какой-либо другой порт (синтаксис server:port на вашем экране печати недействителен)

http://vm1.duckdns.org/public/SMBLibrary/SMBLibrary.htm

https://github.com/TalAloni/SMBLibrary

Тал Алони

person Tal Aloni    schedule 12.06.2014

Почему бы не упростить себе задачу и не настроить дропбокс между клиентом и «сервером» таким образом, чтобы вы пропустили какие-либо vpn и не должны были писать какой-либо код самостоятельно, хотя вам и пришлось бы устанавливать дропбокс.

В качестве альтернативы вы можете написать свою собственную локальную версию dropbox, которая синхронизирует файлы с центральным репо (через любой транспортный механизм http (s), (s) ftp...), а затем запустить приложение, синхронизирующее их с сервером.

РЕДАКТИРОВАТЬ: взгляните на http://www.lifehacker.com.au/2011/07/how-to-set-up-a-file-syncing-dropbox-clone-you-control/

person Daniel Powell    schedule 10.09.2012
comment
Dropbox не поддерживает больше, чем я не помню, сколько данных. Пользователь хочет разместить резервную копию 500 ГБ на двух компьютерах, а затем начать синхронизацию с этого момента. - person Tono Nam; 10.09.2012
comment
есть платные версии дропбокса, которые бы это поддерживали - person Daniel Powell; 10.09.2012