Работа с сервером WebDav
В данном случае WebDav рассматривается как хороший вариант работы www-разработчиков или пользователей, которым нужен доступ только к каталогам и файлам на сервере.
Можно использовать WebDav как замену SMB, при условии что не нужно использовать расширенные ACL на сервере. ;))
Использование WebDav для управления сервером не подходит от слова совсем!
WebDav использует свой протокол поверх http(s).
Этот протокол (dav, davs) занимается только файловыми операциями!
Из этого следуют выводы:
- На сервере всеми файловыми операциями в конечном итоге занимается www-сервер.
- Для работы WebDav на www-сервере необходимы соответствующие настройки.
- Доступы, авторизация и т.п. происходит через «механизмы» www-сервера.
- Не нужно создавать учетную запись пользователя в ОС сервера и предоставлять ему доступ к серверу (ssh, Rdp и т.д.).
- У пользователя нет возможности выполенения на сервере «плохих» команд, запуска «плохих» программ и т.д.
Использование WebDav:
- Упрощает удаленную работу с каталогами и файлами.
- Снимает кучу проблем при работе нескольких разработчиков!
См. Управление разработчиками сайтов - Сильно повышает надежность и защищенность сервера!
Подключение происходит по протоколу davs (https).
Пример:
davs://server.test.no/dir1 davs://server.test.no/dir2
Можно «вынести» WebDav на другой порт:
davs://server.test.no:1443/dir1 davs://server.test.no:1443/dir2
Варианты работы с WebDav
Использование клиента
Особенности использования клиентов
Два варианта работы через клиента:
- Копирование каталога/каталогов на локальный комп.
Редактирование локальных файлов.
Ручная синхронизация каталогов с сервером - Редактирование «налету». Т.е. клиент синхронизирует автоматически.
Клиенты:
- WinSCP (Windows)
Умеет синхронизировать локальные файлы «налету».
https://winscp.net/eng/docs/task_synchronize
«If you make your changes locally and immediately upload the changed files to the remote directory, you can make this much easier by making WinSCP watch for changes you make and automatically reflecting them on the remote directory using the function Keep remote directory up to date.»
Под линукс нет WinSCP, все запускал под Wine.
Добавил внешний редактор Notepad++.
При редактировании файла на сервере создает временный файл в каталоге «temp/…» редактора. После сохранения файла в редакторе (без его закрытия в редакторе) автоматом синхронизирует его с сервером!
Для работы с локальными копиями файлов и синхронизации см. ссылку выше.
На мой взгляд - самый удачный и удобный вариант работы с WebDav. - «Double Commander» (Windows, Linux)
При редактировании удаленного файла делает копию (где-то в /tmp/…) на локальный комп и редактирует ее.
После сохранения и окончания редактирования предлагает отправить на сервер, локальная копия удаляется.
Можно назначить «любимый» редактор и работать в нем. ;)) - «Thunar File Manager» (Linux)
Для работы нужен установленный стандартный пакет davfs2 или подобный.
По сути это не клиент. При подключении к WebDav происходит монтирование в виртуальную файловую систему локального компа (vfs). Но не все программы могут работать с vfs. - Text Editor (gedit) (Linux)
Это редактор, который может сам подключаться к WebDav. Можно вызывать из «Thunar File Manager». ;))
Плагины
Для VSCode (VSCodium) есть два, вроде не плохих, плагина. Быстро разобраться с ними не получилось, отложил.
Монтирование (подключение) в файловую систему локального компа
При монтировании удаленный каталог становится частью файловой системы компа (не vfs).
Работа происходит как с любым каталогом на компе.
Так как операция «монтирования» - функция конкретной ОС локального компа, то для разных ОС настройки монтирования будут разные.
Монтирования под Windows не пробовал.
Общий нюанс для всех ОС
Вариант «железного» монтирования (автомонтирование), т.е. удаленнй каталог(и) сразу монтируется при загрузке компа не есть хорошо!
При таком варианте для каждого удаленного каталога будет «висеть» свое соединение с сервером(ами).
А если их десятки?
Автомонтирование лучше НЕ использовать!
Монтирование WebDav каталога в ОС Linux
Для монтирования нужен установленный стандартный пакет davfs2.
Очень грубой ошибкой является прописыание монтирования в fstab (даже с ключем noauto)! Но в интернете предлагают именно такой вариант. ;)) Не надо трогать fstab!
Самым нормальным вариантом является использование autofs (стандартный пакет, установить) который НЕ использует fstab!
При монтировании через autofs соединение с сервером устанавливается только при обращении к примонтированному каталогу (просмотр каталога, файла, редактировании и т.д.)!
Через некоторое время (задается в настройках монтирования) при отсутствии обращений к каталогу соединение нормально закрывается!
Через autofs можно монтировать и другие протоколы: ftp(s), sftp, smb и т.д.
Работа с Git
Здесь возникают нюансы в зависимости от способа работы с WebDav.
При монтировании в локальную файловую систему все понятно. Каталог «.git» становится «локальным».
При работе через клиента нет возможности запустить команду git-а на локальном компе если нет локального каталога «.git».
Причем, кроме каталога «.git» нужны локальные копии всех каталогов что в git-е!
Получается что при редактировании «налету» нужна «синхронизация» серверного и локального каталогов перед работой с git-ом.
Эта «проблема» возникает везде, где есть доступ только к файлам (ftp(s), sftp, smb и т.д) и таких серверов большинство!
WinSCP по описаниям вроде создает локальные копии (надо проверять). Тогда с ним вопросов не должно быть.
«Double Commander» имеет встроенную мощную функцию синхронизации. Через нее можно перед работой с git синхронизировать.
Есть еще один момент. После работы с git-ом нужна синхронизация и самих каталогов «.git»! ;))
Итого
Самым «интересным» вариантом работы с WebDav получается монтирование. Правильное монтирование!
При работе через клиента общая последовательность такая:
- через «git clone …» развернуть у себя на компе (если еще нет проекта)
- синхронизировать локальный и серверный каталоги (руками или автоматом)
- поработать
- синхронизировать локальный и серверный каталоги (руками или автоматом)
И клиент WinSCP может обеспечить выполнение этой последовательности автоматом (кроме клонирования).
И да, веб-браузеры «умеют» подключаться к WebDav.
Пока все.
