Аналог share folder на windows
От: Videoman Россия https://hts.tv/
Дата: 07.02.17 15:30
Оценка:
Всем добрый день!
Есть что-то готовое не ftp и не http. Хочется иметь программный аналог расшареных папок, но без использования домен-контроллера и сетей windows. Т.е. в идеале: CreateFile ("\\x.x.x.x\path\file", ....); , а удаленная машина доступна лишь через tcp/ip по определенному порту. Извините за сумбур, пока не в теме, совсем.
Re: Аналог share folder на windows
От: Ведмедь Россия  
Дата: 07.02.17 15:35
Оценка:
Здравствуйте, Videoman, Вы писали:

V>Всем добрый день!

V>Есть что-то готовое не ftp и не http. Хочется иметь программный аналог расшареных папок, но без использования домен-контроллера и сетей windows. Т.е. в идеале: CreateFile ("\\x.x.x.x\path\file", ....); , а удаленная машина доступна лишь через tcp/ip по определенному порту. Извините за сумбур, пока не в теме, совсем.

Http + WebDAV?
Да пребудет с тобой Великий Джа
Re[2]: Аналог share folder на windows
От: Videoman Россия https://hts.tv/
Дата: 07.02.17 16:02
Оценка:
Здравствуйте, Ведмедь, Вы писали:

В>Здравствуйте, Videoman, Вы писали:


V>>Всем добрый день!

V>>Есть что-то готовое не ftp и не http. Хочется иметь программный аналог расшареных папок, но без использования домен-контроллера и сетей windows. Т.е. в идеале: CreateFile ("\\x.x.x.x\path\file", ....); , а удаленная машина доступна лишь через tcp/ip по определенному порту. Извините за сумбур, пока не в теме, совсем.

В>Http + WebDAV?


По-моему не то. Я могу в такой схеме пользоваться WinAPI ReadFile/WriteFile, ну, или аналогами?
Re[3]: Аналог share folder на windows
От: Ведмедь Россия  
Дата: 07.02.17 16:06
Оценка:
Здравствуйте, Videoman, Вы писали:

V>Здравствуйте, Ведмедь, Вы писали:


В>>Здравствуйте, Videoman, Вы писали:


В>>Http + WebDAV?


V>По-моему не то. Я могу в такой схеме пользоваться WinAPI ReadFile/WriteFile, ну, или аналогами?


Да. И его можно подцепить так же, как обычную расшаренную папку
Да пребудет с тобой Великий Джа
Re[4]: Аналог share folder на windows
От: Videoman Россия https://hts.tv/
Дата: 07.02.17 16:19
Оценка:
В>Да. И его можно подцепить так же, как обычную расшаренную папку

Надо будет изучить. А что нужно от клиента на windows?
А насколько это быстро, по сравнению с smb?
Одновременных коннектов будет десятки, файлы десятки гигабайт, потянет?
Отредактировано 07.02.2017 16:53 Videoman . Предыдущая версия . Еще …
Отредактировано 07.02.2017 16:28 Videoman . Предыдущая версия .
Re[5]: Аналог share folder на windows
От: Ведмедь Россия  
Дата: 07.02.17 16:53
Оценка:
Здравствуйте, Videoman, Вы писали:

V>Надо будет изучить. А что нужно от клиента на windows?


Какого клиента? Если идет речь про windows pc, то ничего, IE, любой браузер, да и просто explorer поддерживает. WinAPI тоже может принимать в виде пути к файлу http адрес.

V>А насколько это быстро, по сравнению с smb?


Зависит от многих параметров.
Да пребудет с тобой Великий Джа
Re[6]: Аналог share folder на windows
От: Videoman Россия https://hts.tv/
Дата: 07.02.17 17:40
Оценка:
Здравствуйте, Ведмедь, Вы писали:

V>>А насколько это быстро, по сравнению с smb?


В>Зависит от многих параметров.


Одновременных коннектов будет десятки, файлы десятки гигабайт, потянет?
Особенно интересует скорость чтения файлов при их одновременной записи. Это одна из причин отказа от SMB, так как в этом случае скорость доступа падает раз в 5 (по причине постоянной синхронизации).
Re[7]: Аналог share folder на windows
От: PanychY  
Дата: 07.02.17 21:52
Оценка:
Здравствуйте, Videoman, Вы писали:

V>Здравствуйте, Ведмедь, Вы писали:


V>>>А насколько это быстро, по сравнению с smb?


В>>Зависит от многих параметров.


V>Одновременных коннектов будет десятки, файлы десятки гигабайт, потянет?

V>Особенно интересует скорость чтения файлов при их одновременной записи. Это одна из причин отказа от SMB, так как в этом случае скорость доступа падает раз в 5 (по причине постоянной синхронизации).

Как напишете драйвер, так и потянет. Готовых решений нет и не будет. Вы хотите аналог SMB собственный, и для того чтобы ним прозрачно пользоваться WINAPI (т.е. ваш протокол использовался при резолве UNC имени) нужно установить специальный драйвер/клиент который работает именно там. Вот тут вступ https://msdn.microsoft.com/en-us/library/windows/desktop/aa375500%28v=vs.85%29.aspx — дерзайте. Да, под виндой именно так делается, если хотите чтобы винапи его жрало прозрачно. Под Юниксами это делается посредством аналогичного драйвера который монтируется в файловую систему.
Re[7]: Аналог share folder на windows
От: wildwind Россия  
Дата: 08.02.17 05:25
Оценка: +1
Здравствуйте, Videoman, Вы писали:

V>Одновременных коннектов будет десятки, файлы десятки гигабайт, потянет?

V>Особенно интересует скорость чтения файлов при их одновременной записи. Это одна из причин отказа от SMB, так как в этом случае скорость доступа падает раз в 5 (по причине постоянной синхронизации).

Раз у тебя настолько специфический случай, то описывай всю исходную задачу. Иначе пустой треп пойдет.

И почему ты решил, что причина в синхронизации (кстати, что это)? По-моему, причина в том, что твое железо тупо не тянет.
Re[7]: Аналог share folder на windows
От: Ведмедь Россия  
Дата: 08.02.17 08:30
Оценка:
Здравствуйте, Videoman, Вы писали:

V>Здравствуйте, Ведмедь, Вы писали:


V>>>А насколько это быстро, по сравнению с smb?


В>>Зависит от многих параметров.


V>Одновременных коннектов будет десятки, файлы десятки гигабайт, потянет?

V>Особенно интересует скорость чтения файлов при их одновременной записи. Это одна из причин отказа от SMB, так как в этом случае скорость доступа падает раз в 5 (по причине постоянной синхронизации).

webDAV в данном случае выступит как протокол. А реализацию можно взять готовую (sharepoint, например) или сделать самому. Как сделаешь, так и поплывет.
Да пребудет с тобой Великий Джа
Re[8]: Аналог share folder на windows
От: Videoman Россия https://hts.tv/
Дата: 08.02.17 08:51
Оценка:
Здравствуйте, PanychY, Вы писали:

PY>Как напишете драйвер, так и потянет. Готовых решений нет и не будет. Вы хотите аналог SMB собственный, и для того чтобы ним прозрачно пользоваться WINAPI (т.е. ваш протокол использовался при резолве UNC имени) нужно установить специальный драйвер/клиент который работает именно там. Вот тут вступ https://msdn.microsoft.com/en-us/library/windows/desktop/aa375500%28v=vs.85%29.aspx — дерзайте. Да, под виндой именно так делается, если хотите чтобы винапи его жрало прозрачно. Под Юниксами это делается посредством аналогичного драйвера который монтируется в файловую систему.


Правильно ли я понимаю, что провайдер, это просто зарегистрированная DLL экспортирующая несколько нужных функций из списка по вашей ссылке?
А что тогда вот это? Выглядит как прямое отображение на них, нет?
Re[8]: Аналог share folder на windows
От: Videoman Россия https://hts.tv/
Дата: 08.02.17 08:53
Оценка:
Здравствуйте, wildwind, Вы писали:

W>И почему ты решил, что причина в синхронизации (кстати, что это)? По-моему, причина в том, что твое железо тупо не тянет.


Потому, что если файл не пишется в этот момент, то скорость его чтение вырастает раз в 5. Если это же проделать с локальным файлом, то эффекта не наблюдается, только если читать через SMB.
Re[8]: Аналог share folder на windows
От: Videoman Россия https://hts.tv/
Дата: 08.02.17 08:56
Оценка:
Здравствуйте, Ведмедь, Вы писали:

В>webDAV в данном случае выступит как протокол. А реализацию можно взять готовую (sharepoint, например) или сделать самому. Как сделаешь, так и поплывет.


CreateFile не может открыть http, по умолчанию, или вы непонятно объясняете. Из соседних ответов я понял что мне нужно реализовывать провайдер самому, правильно?
Отредактировано 08.02.2017 8:57 Videoman . Предыдущая версия . Еще …
Отредактировано 08.02.2017 8:56 Videoman . Предыдущая версия .
Re[9]: Аналог share folder на windows
От: PanychY  
Дата: 08.02.17 18:42
Оценка: 4 (1)
Здравствуйте, Videoman, Вы писали:

V>Здравствуйте, PanychY, Вы писали:




V>Правильно ли я понимаю, что провайдер, это просто зарегистрированная DLL экспортирующая несколько нужных функций из списка по вашей ссылке?

Да. Только поведение должно быть так как там пишет инструкция. Например особенность этой такая что диспетчер этих всех модулей обращается к ним с двух мест: из процесса который ползуется ресурсами(файлами) который этот провайдер выдает, и также из процесса службы которая заведует этим всем хозяйством(названий не помню, давно это было, читайте документацию). Потому эта DLL должна быть готова что внезапно она размазана про процессам.
Гдето в хидерах есть список констант — имено когда либо известных провайдеров. Если не ошибюсь хидер mprapi.h причастен. В крайнем случае есть функция енумератор активных провайдеров.
Да, у виртуалок есть такая функця "Shared Folder" — вот она этим и пользуется помоему.
V>А что тогда вот это? Выглядит как прямое отображение на них, нет?
Не вижу связи. Возможно существует провайдер который пользуется указаным WebDAV API, я не вкурсе. А это WebDAV API скорее всего пользуетя готовым WinInet API реализацие протокола HTTP, ну либо напрямую сокетами.
Re[9]: Аналог share folder на windows
От: wildwind Россия  
Дата: 09.02.17 11:31
Оценка:
Здравствуйте, Videoman, Вы писали:

W>>И почему ты решил, что причина в синхронизации (кстати, что это)? По-моему, причина в том, что твое железо тупо не тянет.


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


Тогда WebDAV тебе тем более не подойдет, там накладные расходы не меньше. Либо используй FTP или подобный протокол (FSP например), где накладных расходов минимум, либо придется мутить что-то свое на сокетах.
Re[9]: Аналог share folder на windows
От: Слава  
Дата: 09.02.17 11:49
Оценка:
Здравствуйте, Videoman, Вы писали:

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


А толщина канала-то какая, сколько мбит? Какой поток идёт на чтение и на запись? Может оно у вас в 100 мбит ethernet не влазит попросту, а то и в 54 мбит WiFi?

Мне кажется, вы лезете в сторону чего-то очень нетривиального. Чтобы и летало как ракета, и через CreateFile открывалось... и почему же этого до сих пор не сделали-то, к 2017 году, за 20 лет развития SMB? Видимо, это очень сложная задача.
Re[10]: Аналог share folder на windows
От: Videoman Россия https://hts.tv/
Дата: 09.02.17 14:37
Оценка:
Здравствуйте, wildwind, Вы писали:

W>Тогда WebDAV тебе тем более не подойдет, там накладные расходы не меньше. Либо используй FTP или подобный протокол (FSP например), где накладных расходов минимум, либо придется мутить что-то свое на сокетах.


Так уже давно "замучено" и используется , именно на сокетах и летает. Скорость упирается только в сеть и в железо которое непосредственно записывает. Сейчас просто провожу ревизию. Устал писать свой велосипед дублирующий функции системы. Хочется чего-то стандартного, но легкого. Из-за этого и задал вопрос, может быть что-то появилось.
Re[10]: Аналог share folder на windows
От: Videoman Россия https://hts.tv/
Дата: 09.02.17 16:26
Оценка:
Здравствуйте, Слава, Вы писали:

С>А толщина канала-то какая, сколько мбит? Какой поток идёт на чтение и на запись? Может оно у вас в 100 мбит ethernet не влазит попросту, а то и в 54 мбит WiFi?


А какая разница. Я читаю без задержек с максимальной скоростью, которую позволяет конфигурация, и расхождение в скорости между самопальным протоколом и SMB на пол порядка, примерно. Это только в том случае. Если читать данные которые пишутся. Если только читать, то разница не существенна.

С>Мне кажется, вы лезете в сторону чего-то очень нетривиального. Чтобы и летало как ракета, и через CreateFile открывалось... и почему же этого до сих пор не сделали-то, к 2017 году, за 20 лет развития SMB? Видимо, это очень сложная задача.


Это вам кажется. Что — не сделано? CreateFile и WINAPI, сам по себе, работает как ракета. Я говорю только про SMB. Он тормозит от того, что реализован "в общем" и рассчитан на все случаи жизни.
Re[11]: Аналог share folder на windows
От: wildwind Россия  
Дата: 10.02.17 19:09
Оценка:
Здравствуйте, Videoman, Вы писали:

V>Устал писать свой велосипед дублирующий функции системы.


Ну раз функции системы твою задачу не решают, то никакого дублирования нет, не переживай.

V>Хочется чего-то стандартного, но легкого. Из-за этого и задал вопрос, может быть что-то появилось.


Лучшее — враг хорошего?
Re[9]: Аналог share folder на windows
От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
Дата: 12.02.17 07:28
Оценка: 9 (1)
Здравствуйте, Videoman, Вы писали:

V>CreateFile не может открыть http, по умолчанию, или вы непонятно объясняете. Из соседних ответов я понял что мне нужно реализовывать провайдер самому, правильно?

Нет, для доступа по WebDAV в Windows используется готовый Microsoft-WebDAV-MiniRedirector. Он сам перехватывает ваши обращения через механизм доступа к файлам и перенаправляет по WebDAV

За работу этого механизма на клиентской машине отвечает связка MRxDAV драйвер и служба WebClient. К сожалению, у этой связки есть ряд хитростей в настройке, которые в одном месте не описываются (и через UI не настраиваются). Кое-что можно почерпнуть из статьи Неочевидные аспекты использования WebDAV в Windows

Если вы захотите потестировать этот вариант, то можно или подключиться к готовому WebDAV серверу (на сколько я знаю ранее это было у SkyDrive, YandexDrive, может еще у кого...), или настроить IIS на локальной машине. Опять же могу предложить воспользоваться инструкцией по настройке (если не деллали ранее) Шаблоны MS Office в корпоративной сети (часть 2). Использование WebDAV Здесь приведены шаги для настройки на Windows Server 2012, но вообще всё то же самое делается и для пользовательской Windows (только features добавляются иначе и еще я не уверен, для всех ли клиентских версий есть модуль WebDAV)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.