Что такое webdav и как им пользоваться
Записки программиста
Памятка по использованию WebDAV
WebDAV — это расширение протокола HTTP, описанное в RFC4918. WebDAV добавляет в HTTP возможность загружать файлы на сервер, а также удалять / перемещать их, и так далее. В итоге мы получаем что-то очень похожее на FTP, или даже на сетевую файловую систему типа NFS или Samba. Давайте же выясним, как этим пользоваться.
Настойка WebDAV-сервера
В качестве примера рассмотрим настройку обычного, доступного всему миру, веб-сервера, но на который авторизованные пользователи могут еще и заливать файлы по WebDAV. Примем за рабочую теорию, что у вас уже есть сервер под управлением Ubuntu, на котором поднят Nginx с прикрученным к нему Let’s Encrypt.
Правим /etc/nginx/sites-enabled/default примерно таким образом:
server <
charset UTF-8;
server_name afiskon.ru;
listen 127.0.0.1:443 ssl
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/privkey.pem;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
dav_methods PUT DELETE MKCOL COPY MOVE;
dav_ext_methods PROPFIND OPTIONS;
dav_access user:rw group:r all:r;
client_max_body_size 100m;
create_full_put_path on;
limit_except GET <
auth_basic «Restricted»;
auth_basic_user_file /home/afiskon/.webdav_htpasswd;
>
>
>
У вас пути вряд ли будут такими. Файлы будут жить где-то в /var/www/html.
Создаем файл с логинами-паролями:
Важно! Не кладите файл туда, где он будет доступен по WebDAV. В этом случае его сможет просмотреть любой авторизованный пользователь, несмотря на точку в начале имени файла.
Убедимся, что все файлы и каталоги имеют правильные права:
Просим веб-сервер перечитать конфиг:
Вот и вся настойка!
Работа с WebDAV через curl
Получить список доступных методов:
Получить список файлов и каталогов в XML:
Переместить или переименовать файл:
Создать новую директорию:
Удалить файл или каталог:
Таким образом, какие-то простые операции с WebDAV достаточно комфортно можно делать даже на bash.
Работа с WebDAV на Python
Но на bash мы, конечно же, ничего писать не будем. Вместо этого воспользуемся нормальным скриптовым языком. Как обычно, не засорять систему лишними пакетами поможет virtualenv.
Создание нового клиента:
Посмотреть файлы и каталоги:
Получить информацию по файлу или каталогу:
Залить файл на сервер:
Скачать файл с сервера:
Переместить или переименовать:
Удалить файл или директорию:
Заметьте, что когда вы хотите сделать действие с директорией, на конце ее имени обязательно должен быть слэш.
Десктоп-клиенты
В MacOS можно подключиться к WebDAV через Finder. Однако на момент написания этих строк он умел работать только в режиме чтения и заметно подтормаживал.
Как достойную замену можно порекомендовать бесплатную программу Cyberduck. Программа умеет работать не только с WebDAV, но также и с FTP, SFTP, S3, Google Drive, Dropbox и много чем еще. Cyberduck работает под Windows и MacOS. Существует консольный вариант под названием duck. Он работает еще и под Linux. Для тех, кому очень хочется виртуальный жесткий диск, есть вариация под названием Mountain Duck, но только за деньги.
Если Cyberduck вам по каким-то причинам не подошел, рассмотрите альтернативу в лице Transmit. Касаемо текущей ситуации с клиентами под Linux лучше всего обратиться к соответствующей странице на Arch Linux Wiki.
Существуют также мобильные клиенты. Впрочем, я их особо не изучал. Заинтересованным читателям предлагается исследовать этот вопрос самостоятельно.
Заключение
Как видите, с WebDAV трудно соревноваться в простоте. WebDAV может быть неплохим выбором, если вы хотите сделать небольшую файлопомойку на Raspberry Pi. Или, например, вам нужен обычный статический сайт. Но чтобы страницы на нем время от времени обновлялись скриптами, которые запускаются по расписанию в GitHub Actions. В общем, звучит как что-то, что полезно держать на вооружении.
А пользуетесь ли вы WebDAV? Если да, то в каких задачах его применяете?
Статья WebDAV: что это такое, где с ним можно столкнуться, и существующие альтернативы
Что такое WebDAV? В каком контексте вы можете столкнуться с ним? Чем он отличается от своих альтернатив?
Всемирная паутина должна была стать средой для потребления и производства контента. Но веб-браузеры почти сразу утратили способность редактировать веб-страницы, и контент, доступный только для чтения, превратился в непреодолимую норму.
Вы можете столкнуться с WebDAV на HTTP-сервере Apache, Microsoft IIS, Box.com, WordPress, Drupal, Microsoft Sharepoint, Subversion, Git, Windows Explorer, macOS Finder, Microsoft Office, Apple iWork, Adobe Photoshop и во многих других местах.
WebDAV восходит к концу 90-х годов; в системе координат интернета это действительно древние времена. В мире веб-протоколов и API-интерфейсов он предшествует архитектурам SOAP/XML и RESTful. Несмотря на свою долговечность, реализации WebDAV могут быть достаточно странными. Многие серверы и клиенты реализуют подмножества или расширенные подмножества различных стандартов. Таким образом, функциональная совместимость не может быть принята; Успех зависит от платформы, среды и расширений конкретного поставщика.
Благодаря этому всему во многих случаях использования WebDAV вытесняется более современными механизмами. Он все еще является полноценной и надежной рабочей лошадкой особенно в тех случаях, когда подходящие серверы и клиенты подобраны. Вы можете столкнуться с WebDAV в разных контекстах.
WebDAV (RFC 4918) является расширением HTTP, протокола, который веб-браузеры и веб-серверы используют для связи друг с другом. Протокол WebDAV позволяет веб-серверу вести себя также как файловый сервер, поддерживая совместную разработку веб-контента.
WebDAV расширяет набор стандартных HTTP-методов и заголовков, чтобы обеспечить возможность создания файла или папки, редактирования файла на месте, копирования или перемещения или удаления файла и т. д. В качестве расширения HTTP, WebDAV обычно использует порт 80 для незашифрованного доступ и порт 443 (HTTPS) для безопасного доступа.
Для поддержки совместного авторинга исходная спецификация WebDAV включала блокировку файлов, но она была применена к части «управления версиями» DAV из-за сложности домена отслеживания версий. DeltaV (RFC 3253), часть управления версиями и конфигурацией WebDAV, была определена позже. Возможности поиска также были добавлены в более позднем расширении (RFC 5323).
Если вы встречаете сервер WebDAV, называемый «класс 1», это означает, что ему не хватает блокировки. Класс 2 включает в себя блокировку. Сервер WebDAV с управлением версиями часто называют просто сервером «DeltaV».
WebDAV сам по себе является основой для дополнительных протоколов, включая календарь (CalDAV) и управление контактами (CardDAV).
Где вы можете столкнуться с WebDAV
WebDAV встречается в разных контекстах на стороне сервера или клиента.
Одно предупреждение: многие из них поддерживают WebDAV достаточно долго. Когда WebDAV не занимает центральное место в конкретном пакете, функциональность WebDAV может поддерживаться не так, как раньше.
Сервер WebDAV всегда является веб-сервером, но он может быть встроен в другую систему.
Реализация WebDAV с открытым исходным кодом по умолчанию находится на сервере Apache HTTP. Многие веб-серверы поддерживают WebDAV через дополнительный модуль, например Nginx, lighttpd и Microsoft IIS.
Системы контроля версий
Несколько систем контроля версий доступны через ту или иную форму WebDAV, включая Subversion, Git и PVCS.
Совместные платформы и системы управления контентом ( Content Management Systems )
Платформы для совместной работы, такие как Microsoft Sharepoint или CMS, такие как WordPress, Drupal или Joomla, могут иметь встроенный WebDAV или доступный через дополнительные модули.
Сетевое хранилище и облачное хранилище
Устройства сетевого хранилища (Network-Attached Storage (NAS)) в вашей локальной сети могут поддерживать удаленный доступ через WebDAV. Облачные сервисы хостинга файлов, такие как Box.com, могут предложить вам доступ к вашим папкам и файлам через WebDAV.
WebDAV появляется в случайных местах, где полезны удаленные манипуляции с файлами и их редактирование. Например, платформа системного проектирования LabView может использовать WebDAV для передачи файлов на или же с встроенного целевого компьютера.
Как отмечается в документации Subversion, клиенты WebDAV являются автономными приложениями, расширениями для файловых анализаторов или модулями файловой системы. В частности, клиент WebDAV может быть одним из следующих.
Приложения для доступа к файлам WebDAV
Приложения, предназначенные для предоставления вам доступа к удаленным файлам, могут быть ориентированы исключительно на WebDAV, например, инструмент для командной строки Linux или графический DAV Explorer. Или они могут быть инструментами, которые «говорят» на нескольких протоколах, например WinSCP или Cyberduck.
Использование WinSCP для просмотра удаленных файлов через WebDAV.
Они позволяют загружать в интернет и скачивать файлы, управлять папками и т. д.; графический интерфейс обеспечивает возможность перетаскивания и другие зрительные образы.
Приложения, использующие WebDAV
Ряд приложений имеет возможность работать с файлами, доступ к которым осуществляется через WebDAV. Диалог выбора файла приложения поддерживает ввод не только локального имени файла, но и URL-адреса WebDAV с указанием имени пользователя и пароля, необходимых для сервера WebDAV. Эти приложения включают Microsoft Office (Word, Excel и т. д.); Apple iWork (Pages, Numbers, Keynote); Adobe Photoshop и Dreamweaver; и другие.
Когда такое приложение работает с файлами или папками на сервере WebDAV, WebDAV работает за кулисами, обеспечивая совместную модификацию удаленных файлов. Файлы на сервере редактируются «на месте», без загрузки в локальную файловую систему для последующей повторной загрузки (что создает несколько копий, которые могут быть не синхронизированы).
Расширения файлового проводника
Пользовательские интерфейсы файловых менеджеров большинства операционных систем включают расширение для представления и управления папками и файлами WebDAV, как если бы они были локальными. К ним относятся проводник Windows, macOS Finder, файлы GNOME (Nautilus) и KDE Konqueror в Linux.
Отображение сервера WebDAV в качестве сетевого диска в проводнике Windows.
В каждом случае будет опция «подключиться к серверу», в которой вы указываете URL-адрес сервера WebDAV (к сожалению, формат URL варьируется от инструмента к инструменту). Затем вы предоставляете имя пользователя и пароль для доступа к серверу.
Сервер WebDAV отображается в проводнике Windows.
Диспетчер файлов представляет удаленные файлы и папки, доступ к которым осуществляется через WebDAV, в качестве локальных ресурсов, по которым вы можете щелкать, перетаскивать их и т. д.
Модули файловой системы
Несколько операционных систем включают возможность использования низкоуровневого модуля файловой системы, который монтирует или отображает соединение с сервером WebDAV в качестве диска или монтирования. К ним относятся Microsoft WebDAV Redirector, файловая система macOS WebDAV, а также Linux GNOME GVfs и KDE KIO.
После того как операционная система подключила/смонтировала сервер WebDAV, файлы и папки, доступные через WebDAV, кажутся локальными. К ним можно получить доступ через обычные вызовы доступа к файлам, и любое локальное приложение может получить доступ к ним, не зная их истинного местоположения.
WebDAV позволяет удаленно редактировать и манипулировать файлами. Есть много других механизмов для работы с файлами; чем отличается WebDAV?
FTP ((Протокол передачи файлов) File Transfer Protocol) ведет свою историю с первых дней Интернета. Интернет тогда был маленьким городом, поэтому безопасность vanilla FTP совершенно не подходит для злобных улиц современного Интернета. В отличие от FTP, WebDAV использует преимущества безопасности HTTPS. Дизайн FTP не дружественен к брандмауэрам, в то время как WebDAV использует стандартные механизмы поддержки веб-серверов. FTP требует своего собственного серверного процесса, а WebDAV живет в веб-сервере. И еще одна деталь, FTP не включает в себя функции совместной работы, такие как блокировка и отслеживание версий.
Существуют потомки FTP, которые удовлетворяют потребность в безопасности, используя расширение FTP или рабочий протокол, поверх SSL/TLS или SSH.
Протокол SSH (Secure Shell) использует криптографию для безопасного предоставления услуг операционной системы, таких как доступ к файлам и выполнение команд по небезопасной сети. Среди сервисов SCP (протокол защищенного копирования(Secure Copy protocol)) и SFTP (протокол защищенной передачи файлов(Secure File Transfer Protocol)).
SSH (и, следовательно, SCP и SFTP) требует собственных серверных процессов и правил брандмауэра, но поддержка SSH практически универсальна для Linux и macOS и недавно стала встроенной службой в Windows 10 (ранее требовалось стороннее программное обеспечение), SCP обрабатывает только передающиеся файлы, в то время как SFTP может управлять папками, удалять файлы и т. д. Однако им не хватает функций, ориентированных на совместную работу; протокол SFTP поддерживает блокировку файлов, но пока вы не можете рассчитывать на его присутствие и включение.
Идеал вики заключается в том, что сайт является краудсорсингом и самоорганизуется; любой пользователь может вносить изменения, и нет предопределенного владельца или привратника. Анархический идеал часто подвергается риску; Существуют различные вики-движки, и многие поддерживают аутентификацию пользователей и навязывают контроль доступа к операциям.
Распределенные файловые системы
Существует несколько протоколов для совместного использования удаленных файловых систем в сетях, наиболее распространенным из которых является сопоставление/монтирование общего сетевого ресурса, экспортируемого сервером, что позволяет вам получать доступ к папкам и файлам на сервере, как если бы они были локальным диском. SMB/CIFS является родным для Windows; NFS является родным для Unix/Linux; а для MacOS старый AFP по умолчанию сейчас уступает позиции в пользу SMB.
Эти протоколы предоставляют практически все службы файловой системы на локальном диске, включая блокировку файлов, но не встроенное отслеживание версий файлов.
Средства распределенной файловой системы часто поставляются с операционной системой; если они добавляются позже, они обычно требуют добавления дополнительных модулей в ОС.
Эти протоколы были разработаны для работы в локальной сети. Производительность через глобальный Интернет или VPN не будет выдающейся, хотя вы можете несколько смягчить этот фактор с помощью настройки, а более поздние версии протоколов попытаются решить эту проблему.
Эти протоколы имеют гораздо большую поверхность атаки, чем более простые протоколы, такие как WebDAV. Хотя некоторые последние версии, такие как NFSv4 и SMB3, вносят улучшения для поддержки безопасного использования в ненадежных сетях, большинство версий этих служб не защищены за пределами локальной сети, и их настройка для такого использования является довольно опасной.
Облачное хранилище файлов
Сервисы облачного хранения, такие как Dropbox, Microsoft OneDrive, Google Drive и Box.com, кажутся естественными местами для WebDAV. В некоторых из них это действительно проявляется: Box.com доступен через WebDAV, а OneDrive доступен через стандартные средства Windows WebDAV (хотя это необходимо только в том случае, если у вас не установлена синхронизация файлов OneDrive). Другие сервисы облачного хранения предоставляют свои собственные специализированные API, программное обеспечение для синхронизации файлов и клиенты веб-приложений, и если вы хотите получить доступ к WebDAV, вам нужно использовать сторонний шлюз.
Специализированные API, программное обеспечение для синхронизации файлов и клиенты веб-приложений, предоставляемые облачными сервисами, предназначены для обеспечения безопасности и производительности в сетях, таких как Интернет.
Почему стоит выбирать именно WebDAV ?
Вы можете купить пакеты программного обеспечения, которые управляют совместной разработкой, но тогда вы будете платить за систему, которая просто дублирует услуги WebDAV, которую вы можете получить бесплатно.
Хотя WebDAV иногда описывают как устаревшую методологию, он очень хорошо помогает популярным компаниям, занимающимся облачным хранением данных, обеспечивать беспрепятственный локальный доступ к удаленным файлам. Современные трудовые навыки разделения работы, управления проектами, совместной разработки, координации разработки, удаленной работы и облачных сервисов создают требования к сервисам, которые WebDAV способен предоставлять десятилетиями. В некотором смысле, WebDAV опередил свое время, и только сейчас предприятия начинают работать так, что им действительно требуется полный набор возможностей WebDAV.
Серверы и клиенты WebDAV все еще набирают силу
WebDAV: Подключаем сетевой диск облачного хранилища в Windows 10 и Linux
Web Distributed Authoring and Versioning (WebDAV) – это расширение HTTP, которое обеспечивает совместный способ редактирования и управления вашими файлами на удаленном веб-сервере. В этой статье вы узнаете, как подключить диск WebDAV в Windows 10 и Linux, для того чтобы получить доступ файлам облачного хранилища непосредственно в файловом менеджере.
Содержание
Подключение сетевого диска по протоколу WebDAV в Windows 10
Чтобы подключиться к каталогу WebDAV в Windows 10, вам понадобится URL-адрес облачного хранилища по протоколу WebDAV, данные для авторизации в вашу учетную запись.
Например, для облачного хранилища NextCloud ваша персональная ссылка доступна в левом нижнем углу веб-интерфейса облака, в окне Настройки.
Для облачного хранилища OneDrive ссылка на подключение должна содержать идентификатор.
Ссылка выглядит следующим образом:
Будет произведена авторизация и затем подключение к облачному хранилищу.
Как повысить максимальный размер загружаемых файлов до 4 ГБ
По умолчанию в Windows максимальный размер файлов, которые можно пересылать по WebDAV, около 50 МБ. Чтобы повысить до 4 ГБ, выполните следующие действия:
Что делать, если не удается подключиться к каталогу WebDAV
Если вы не можете подключиться к каталогу WebDAV, обновите базовый уровень проверки подлинности в реестре Windows.
Подключение сетевого диска по протоколу WebDAV в Linux
Рассмотрим два способа подключения WebDav в Linux.
Первый способ. Подключение из файлового менеджера
В зависимости от облачного хранилища ссылка может отличаться, но в любом случае в ссылке ввместо http (https) должен быть указан протокол davs.
Второй способ. Монтирование сетевого диска по протоколу WebDav
Во время установки вас спросят, хотите ли вы, чтобы непривилегированным пользователям было разрешено монтировать ресурсы WebDAV. Выберите Да.
Вместо папки nextcloud можно указать свое название.
В конце файла нужно вставить ссылку на подключение и данные для авторизации. Пример для подключения облака NextCloud:
В конце файла добавляем ссылку на подключения с именем и паролем и конфигурацией монтирования. Пример для подключения к NextCloud:
Где nextcloud – это ваша папка названия сетевого диска (этап 2 в данной инструкции).
📑 WebDAV
WebDAV (Web Distributed Authoring and Versioning) — защищённый сетевой протокол высокого уровня, работающий поверх HTTP. Используется для доступа к объектам и коллекциям.
Всемирная паутина должна была стать средой для потребления и производства контента. Но веб-браузеры почти сразу утратили способность редактировать веб-страницы, и контент, доступный только для чтения, превратился в непреодолимую норму.
Только самые ранние веб-браузеры поддерживали редактирование веб-страниц. Тем не менее, часто требуется совместное редактирование удаленного контента, и поэтому оно появилось в Интернете в разных формах. WebDAV (Web Distributed Authoring и Versioning) — это один из механизмов. Веб-сервер, который поддерживает WebDAV, одновременно работает как файловый сервер. Это мощная возможность.
Вы можете столкнуться с WebDAV на HTTP-серверах Apache и Nginx, Microsoft IIS, Box.com, WordPress, Drupal, Microsoft Sharepoint, Subversion, Git, Windows Explorer, macOS Finder, Microsoft Office, Apple iWork, Adobe Photoshop и многих других местах.
Сервер WebDAV всегда является веб-сервером, но он может быть встроен в другую систему. Реализация WebDAV с открытым исходным кодом по умолчанию находится на сервере Apache HTTP. Многие веб-серверы поддерживают WebDAV через дополнительный модуль, например Nginx, lighttpd и Microsoft IIS.
WebDAV восходит к концу 90-х годов; в годы интернета это древнее. В мире веб-протоколов и API-интерфейсов он предшествует архитектурам SOAP / XML и RESTful. Несмотря на свою долговечность, реализации WebDAV могут быть странными. Многие серверы и клиенты реализуют подмножества или расширенные подмножества множества стандартов. Таким образом, совместимость не может быть принята; Успех зависит от платформы, среды и специфических для поставщика расширений.
Благодаря этому во многих случаях использования WebDAV заменяется более современными механизмами. Но это все еще мощная возможность и надежная рабочая лошадка, когда подобраны подходящие серверы и клиенты.
Протокол WebDAV позволяет веб-серверу вести себя также как файловый сервер, поддерживая совместную разработку веб-контента.
WebDAV расширяет набор стандартных HTTP-методов и заголовков, чтобы обеспечить возможность создания файла или папки, редактирования файла на месте, копирования или перемещения или удаления файла и т. Д. В качестве расширения HTTP, WebDAV обычно использует порт 80 для незашифрованного доступ и порт 443 (HTTPS) для безопасного доступа.
Для поддержки совместной разработки исходная спецификация WebDAV включала блокировку файлов, но в части «управления версиями» DAV это было связано со сложностью домена отслеживания версий. DeltaV (RFC 3253), часть управления версиями и конфигурацией WebDAV, была определена позже. Возможности поиска также были добавлены в более позднем расширении (RFC 5323).
Доступ к файлам и манипулирование ими — это хорошо понятная возможность, которая полезна для широкой аудитории. Но отслеживание изменений чуждо нетехническим пользователям. Также нет распространенного метода, который операционные системы, системы контроля версий и приложения используют для моделирования истории и изменений. Используются многие схемы. Как следствие, WebDAV без контроля версий широко распространен, а DeltaV гораздо менее широко реализован.
Несколько систем контроля версий доступны через ту или иную форму WebDAV, включая Subversion, Git и PVCS.
Если вы встречаете сервер WebDAV, называемый «класс 1», это означает, что в нём отсутствует блокировка. Класс 2 включает в себя блокировку. Сервер WebDAV с версионированием часто называют просто сервером «DeltaV».
WebDAV сам по себе является основой для дополнительных протоколов, включая календарь (CalDAV) и управление контактами (CardDAV).
В разработке протокола WebDAV принимали участие сотрудники ведущих компаний: Microsoft, Netscape, Novell и Xerox, Rational, Intersolv, IBM.
Основные функции WebDAV:
То, что протокол предоставляет пользователям возможность совместно использовать и редактировать файлы на удаленном онлайн сервере широко используется в WEB-сервисах, WEB-системах (особенно в системах коллективной работы — groupware).
WebDAV позволяет работать с онлайн-хранилищами, такими как Яндекс.Диск, 4shared.com, Dropbox, Box.com и т.д.
Хотя существуют альтернативы WebDAV и некоторые из них являются более новыми системами, ни одна из конкурирующих систем не объединяет все возможности WebDAV. Ключевые атрибуты WebDAV:
Ни одна из альтернативных систем управления файлами не обладает всеми этими атрибутами. Вы можете безопасно передавать файлы с помощью SFTP и SCP, но эти протоколы не включают контроль версий. WebDav предоставляет удаленный доступ к документам в центральном хранилище, а не требует, чтобы файлы копировались на локальный компьютер пользователя, а затем копировались обратно.
Вы можете купить пакеты программного обеспечения, которые управляют совместной авторизацией, но тогда вы будете платить за систему, которая просто дублирует сервисы WebDAV, которые вы можете получить бесплатно.
Хотя WebDAV иногда изображают как устаревшую методологию, он очень хорошо помогает популярным компаниям, занимающимся облачным хранением данных, обеспечивать беспрепятственный локальный доступ к удаленным файлам. Современные рабочие практики разделения рабочих мест, управления проектами, совместной разработки, координации разработки, удаленной работы и облачных сервисов создают требования к сервисам, которые WebDAV может предоставлять десятилетиями. В некотором смысле, WebDAV опередил свое время, и только сейчас компании начинают использовать полный набор возможностей WebDAV.