WebDAV: протокол для "облачных флэшек"

Чтобы организовать доступ сотрудников, находящихся за пределами предприятия, к внутренним файл-серверам, лучше всего воспользоваться встроенным протоколом Windows XP и Windows Server 2003, Web Distributed Authoring and Versioning (WebDAV), который обеспечивает безопасный доступ через приложение-посредник. Пример такого доступа - защищенный доступ Outlook 2003 к Exchange Server через HTTP-proxy. Реализовать WebDAV просто, так как протокол инкапсулирован в классическом HTML. Поэтому брандмауэры не являются препятствием для использования протокола, который совместим не только с платформой Windows, но и с другими операционными системами, в частности Mac OS. Для защиты WebDAV достаточно применить HTTP Secure (HTTPS).

Рассмотрим этапы подготовки удаленного доступа через WebDAV к папке на внутреннем файл-сервере. Основные компоненты - сервер Microsoft Internet Information Services (IIS) 6.0, файл-сервер, офисное сетевое соединение и клиентские компьютеры. Сервер IIS и файл-сервер не обязательно должны размещаться на одном компьютере. Также необходима система Windows 2003, подключенная к внутренней сети и доступная через Internet. Этот сервер называется WebDAV-сервером, так как он будет работать с IIS 6.0 и серверным модулем расширения WebDAV. Не беда, если WebDAV-сервер еще не подключен к Internet; однако его нужно защитить.

Доступ к серверу WebDAV через Internet

Способ доступа к серверу WebDAV через Internet зависит от текущего состояния среды и размеров предприятия. Обязательное условие - назначить IP-адрес или имя DNS и номер TCP-порта, с помощью которых удаленные пользователи будут обращаться к серверу WebDAV. Рассмотрим типичные сценарии. На малом предприятии единственное устройство, подключенное к Internet, - типовой широкополосный маршрутизатор/брандмауэр, но это не помешает организовать доступ с использованием WebDAV. Необходим IP-адрес, по которому удаленные пользователи будут обращаться к файл-серверу. Во-первых, следует выяснить, имеется ли у маршрутизатора статический IP-адрес. Если нет, то проще всего получить его у Internet-провайдера. Если статический IP-адрес получить нельзя, можно использовать DDNS. Большинство широкополосных маршрутизаторов совместимы с DDNS. Затем нужно решить проблему TCP-порта. Если для доступа к узлам за маршрутизатором уже применяется HTTPS, можно просто сделать в брандмауэре исключение для передачи входящих соединений в TCP-порт 443 внутреннего сервера, на котором выполняется IIS 6.0 с WebDAV. На данном этапе порт открывать не следует; предварительно необходимо убедиться, что внутренний сервер готов к этому.

Если IIS-сервер еще не подключен к Internet, можно назначить файл-сервер WebDAV-сервером.

В более сложной сети, возможно, уже имеется система Windows 2003, подключенная к Internet напрямую или через брандмауэр, как описано выше. Не составит труда задействовать эту систему. Если сервер Windows 2003 уже работает с IIS, например для Microsoft Outlook Web Access (OWA), SharePoint или общедоступного Web-узла, можно создать виртуальный каталог в существующем Web-узле или подготовить новый узел. Различие в том, что при использовании существующего Web-узла для настройки клиентского доступа WebDAV нужно к имеющемуся URL-адресу Internet добавить имя виртуального каталога. Если создан новый узел, то для него может потребоваться новый номер TCP-порта. При доступе к существующему узлу через HTTPS с использованием стандартного HTTPS-порта 443 необходимо выбрать новый порт для клиентского доступа WebDAV. Если существующий узел настроен на использование порта 443, но никто не обращается к нему через HTTPS, можно изменить текущий порт Secure Sockets Layer (SSL). Если использовать в качестве SSL-порта какой-либо порт, кроме 443, то необходимо добавить к URL-адресу номер порта. Например, для домена с именем webdav.ultimatewindowssecurity.com URL-адрес будет https://webdav.ultimatewindowssecurity.com:XXXXX, где XXXXX - номер порта.

Настройка безопасного WebDAV

В следующих поэтапных инструкциях предполагается, что IIS и WebDAV устанавливаются на системе, отличной от файл-сервера. В этом случае достаточно установить IIS без активизации Active Server Pages (ASP) и любых других необязательных компонентов. После установки IIS следует открыть оснастку Internet Information Services (IIS6) Manager консоли Microsoft Management Console (MMC) (см. экран 1), развернуть папку Web Service Extensions и активизировать узел WebDAV. Чтобы максимально сузить поверхность атаки на IIS, не следует активизировать другие модули расширения.

Экран 1. Активизация WebDAV в IIS 6.0

Затем нужно настроить IIS для приема только проверенных, шифрованных соединений. Из оснастки IIS Manager консоли MMC следует открыть диалоговое окно Default Web Site Properties и выбрать вкладку Directory Security (экран 2). Прежде всего необходим сертификат SSL для сервера. Если в компании запущена служба Microsoft Certificate Services для домена, то запросить сертификат можно с помощью мастера. В противном случае потребуется купить сертификат в общедоступном удостоверяющем центре или создать сертификат с собственной подписью. В комплекте ресурсов Microsoft Windows Internet Information Server Resource Kit есть инструмент для генерации сертификатов с собственной подписью. Если имеется корпоративный удостоверяющий центр, необходимо щелкнуть на кнопке Server Certificate и пройти по операциям мастера Web Server Certificate Wizard. На странице Delayed or Immediate Request нужно выбрать пункт Send the request immediately to an online certification authority и щелкать на кнопке Next до тех пор, пока не появится страница Your Site?s Common Name. На ней требуется ввести имя DNS или IP-адрес для обращения удаленных пользователей к Web-узлу. Если введен IP-адрес и используется DHCP с DDNS, то сертификат при изменении IP-адреса окажется недействительным. Не следует указывать https:// или номер порта. В приведенном выше примере с URL необходимо ввести webdav.ultimatewindowssecurity.com. Нажимая Next, нужно перейти к странице SSL Port и ввести выбранный ранее TCP-порт, а затем щелкать на кнопке Next до появления кнопки Finish. После щелчка на ней сертификат SSL будет установлен. Вернувшись на вкладку Default Web Site Properties Directory Security, следует щелкнуть на кнопке Edit в разделе Secure communications, чтобы вызвать диалоговое окно Secure Communications и установить флажки Require secure channel (SSL) и Require 128-bit encryption.

На следующем этапе необходимо потребовать, чтобы все пользователи при обращении к серверу проходили проверку подлинности. На вкладке Directory Security следует щелкнуть Edit в разделе Authentication and access control. Сбросив флажок Enable anonymous access (экран 3), нужно установить флажок Basic authentication (password is sent in clear text). Не обязательно выбирать обычную проверку подлинности, если на предприятии имеются только клиенты Windows. Можно не обращать внимания на предупреждение о простом тексте от IIS - шифрование SSL уже активизировано. Стандартный домен следует настроить в соответствии с параметрами домена, в котором размещены учетные записи удаленных пользователей; в результате пользователям не придется добавлять перед своими именами domain name. Вид диалогового окна Authentication Methods должен быть похож на экран 3.

Настраиваем IIS на общедоступную папку

Всякий раз, когда устанавливается новый IIS-сервер, создается виртуальный каталог на существующем Web-узле или новый Web-узел на имеющемся IIS-сервере; необходимо настроить IIS на соответствующую папку файл-сервера, в которую будут направляться запросы от URL-адреса WebDAV. Если создан узел или виртуальный каталог в существующем узле, то IIS предоставляет возможность указать папку, которая содержит информацию для этого каталога или узла. Поскольку используется экземпляр IIS, выделенный для WebDAV, необходимо только связать корневой каталог выбираемого по умолчанию Web-узла с файл-сервером. В диспетчере IIS Manager следует вернуться к Default Web Site Properties и выбрать вкладку Home Directory, затем установить флажок A share located on another computer и ввести в текстовом поле Network directory путь в формате Universal Naming Convention (UNC) для общей папки, к которой предстоит обращаться удаленным пользователям (экран 4).

Необходимо убедиться, что IIS олицетворяет текущего пользователя перед доступом к файл-серверу. Следует щелкнуть на кнопке Connect As... и установить флажок Always use the authenticated user?s credentials when validating access to the network directory. Чтобы пользователи могли получать, отправлять и просматривать файлы в папке через WebDAV, нужно установить флажки Read, Write и Directory browsing на вкладке Home Directory (экран 4). Эти флажки определяют только операции WebDAV, которые может запросить пользователь. Файл-сервер применяет разрешения NTFS для доступа к файлам так, как будто пользователь подключен локально. Остальные параметры на вкладке Home Directory активизировать не нужно, а параметру Execute permissions следует присвоить значение, обеспечивающее максимально надежную защиту.

На этом завершается подготовка IIS к приему запросов WebDAV для доступа к файл-серверу. Перед тем как открыть WebDAV-сервер для внешнего мира, необходимо убедиться, что на сервере установлены все исправления для системы безопасности IIS. Наконец, можно открыть соответствующий порт брандмауэра и приступить к работе на серверной стороне.

Активизация пользователей

Теперь остается лишь активизировать удаленных пользователей. Для этого нужно создать ярлык Add Network Place для пользователей, чтобы они могли получить доступ в My Network Places на своих клиентских компьютерах. Затем каждому пользователю необходимо обратиться в My Network Places, дважды щелкнуть на ярлыке Add Network Place и ввести URL-адрес узла WebDAV. При первом обращении к ярлыку в My Network Places программа Windows Explorer запрашивает учетные данные; впоследствии пользователи получают доступ к файл-серверу как к обычной общей папке.

Проблемы безопасности

Насколько безопасен этот метод? Удаленный доступ через WebDAV сопоставим по защищенности с VPN-доступом на основе пароля пользователя. Единственное различие - увеличенная площадь атаки WebDAV из-за открытого порта 443. Однако, чтобы воспользоваться HTTP для проникновения в систему, взломщикам требуется успешно пройти проверку подлинности. Чтобы усилить безопасность, можно внести элемент неизвестности, изменив номер HTTPS-порта Web-узла с 443 на более высокий. Следует иметь в виду, что при этом ограничивается доступ удаленных пользователей, находящихся за брандмауэром другой компании со строгими ограничениями для исходящих соединений. Лучший способ еще более надежно защитить любой тип Web-соединений - требовать клиентские сертификаты наряду с аутентификацией с применением пароля. Для получения сертификата удаленным пользователям достаточно пройти по нескольким Web-страницам.

Рэнди Франклин Смит - редактор Windows IT Pro и ведущий инструктор и разработчик курсов для программы по безопасности Windows NT/2000 института MIS Training. Его компания, Monterey Technology Group, занимается консалтингом в области информационной безопасности. Связаться с ним можно по адресу:

Совсем недавно мы рассмотрели две очень интересные темы, связанные с доступом к файлам на компьютере через интернет. Эти статьи доступны по следующим ссылкам: и . Статьи получились большие и, на мой взгляд, очень полезные, но этот комплект не полный. Сегодня я расскажу об ещё одном способе обмена файлами, а точнее протоколе WebDAV. Что же это такое?

WebDAV (англ. Web Distributed Authoring and Versioning ) — это протокол защищенного соединения высокого уровня. WevDAV работает поверх HTTP. Этот протокол позволяет осуществлять любые операции с файлами (и их метаданными) на сервере и даже позволяет работать одновременно с несколькими файлами. То есть, установив WebDAV сервер, мы получаем защищенное соединение для работы с нашими файлами на компьютере с любой точки планеты, где есть интернет. Неплохо? Конечно же, это отлично! И, кстати, именно по протоколу WebDAV работают такие проекты как Google Drive , Яндекс.Диск , DropBox и SkyDrive . Это явный пример того, что этот протокол стоит внимания.

Хватит теории, думаю вы и так уже всё поняли и решили, что вам он нужен. Перейдем к настройке (все операции проводились на Windows 8.1 Final, но применимы так же к Windows 7 и Windows 8):

1) Первое что нам нужно — это включить недостающие компоненты системы. Для этого идём в «Панель управления» → категория «Программы» → «Программы и компоненты» и жмём кнопку слева «Включение или отключение компонентов Windows»:

2) Открываем каталог «Службы IIS» и ставим маркеры на каталоги «Службы Интернета» и «Средства управление веб-сайтом».

Раскрываем «Службы Интернета» и далее совершаем два пункта:
а) Переходим в каталог «Безопасность» и ставим галочку на все пункты;
б) Переходим в каталог «Общие функции HTTP» в этом каталоге так же ставим галочки на все компоненты.

Жмём ОК и ждём, пока Windows включит необходимые нам компоненты.

Возможно после включения понадобится перезагрузка системы.


3) Далее нам необходимо создать пользователей и группу для них, которые смогут работать с нашими файлами по протоколу WebDAV. Для этого идём в «Панель управления» → группа «Система и безопасность» → «Администрирование» → «Управление компьютером». В левой части окна выбираем раздел «Локальные пользователи и группы» → «Группы». Чтобы создать группу, нужно кликнуть правой клавишей мыши по центральной части окна и выбрать соответствующий пункт:



Далее нужно перейти на вкладку «Пользователи» и по аналогии создать нового пользователя. Кликаем правой клавишей по пустому месту и выбираем «Новый пользователь»:

Указываем имя пользователя, полное имя, вводим пароль, снимаем галочку с «Требовать смены пароля…» и ставим галочки на «Запретить смену пароля пользователем» и «Срок действия пароля не ограничен» и создаем пользователя:

Далее открываем свойства нового пользователя и переходим на вкладку «Членство в группах». Жмём кнопку «Добавить» → «Дополнительно» → «Поиск» и выбираем группу, которую мы создали несколько минут назад. Жмём ОК.

4) Теперь нам нужно предоставить новой группе доступ к папкам, доступ к которым будет осуществляться через WebDAV. Для этого открываем свойства нужного каталога и переходим на вкладку «Безопасность», нажимаем кнопку «Изменить»:

Нажимаем «Добавить» и добавляем группу пользователей, которую мы создавали для WebDAV. Выбираем её и даём в нижней части полный доступ:

Жмём ОК, для применения изменений.

5) Теперь переходим к настройке сервера. Для этого идём в «Панель управления» → группа «Сеть и безопасность» → «Администрирование» и открываем «Диспетчер служб IIS» → «Сайты» и выбираем в левой колонке «Default Web Site»:

В центральной части окна открываем «Правила разработки WebDAV»:

В открывшемся меню, в правой колонке жмём кнопку «Включить WebDAV»:

В открывшемся окне выбираем «Указанные роли или группы пользователей» и вводим имя группы, которую мы создавали для WebDAV. Ставим все галочки в разделе «Разрешения» и жмём ОК.

Возвращаемся в окно работы с сайтом и жмём кнопку «Проверка подлинности»:

Включаем «Проверка подлинности Windows». Для этого нажимаем правой клавишей и выбираем «Включить». Если сервер будет использовать только для WebDAV, можно отключить анонимную проверку.

Ещё раз возвращаемся в меню работы с сайтом и выбираем пункт «Правила авторизации»:

В этом окне нам нужно добавить разрешающее правило, нажав кнопку справа. Указываем нашу группу пользователей.



Настройка сервера почти завершена, осталось за малым: указать папку, доступ к которой будет осуществлять по протоколу WebDAV. Для этого жмём правой клавишей по выбираем «Управление веб-сайтом» и кликаем по «Дополнительные параметры»:

В открывшемся окне вводим путь до папки, доступ к которой будет осуществляться через протокол WebDAV и жмём ОК.

Сервер WebDAV настроен и готов к работе. Если у вас постоянный IP, можно купить доменное имя и привязать его к вашему компьютеру.
Для удобства использования WebDAV сервера, можно , это значительно упростит его использование. Так же к вашему вниманию доступны статьт о подключении к серверу с телефона на Android через или .

На этом всё. Надеюсь эта статья оказалась вам полезной, нажмите одну из кнопок ниже, чтобы рассказать о ней друзьям. Также подпишитесь на обновления сайта, введя свой e-mail в поле справа.

Планшетный компьютер iPad удобен для пользования интернетом и работой с документами в командировках, поездках да и просто где угодно. Программы пакета iWork могут импортировать заранее сохранённые в /Documents файлы, или же загружать их с сервера WebDAV или из MobileMe (к которому, строго говоря, доступ тоже осуществляется по WebDAV). При этом MobileMe значительно уступает дропбоксу по возможностям синхронизации, и не работает в Linux и на Android"e. Кроме того, в Pages, Keynote и Numbers нет поддержки Dropbox, который является просто образцовым сервером по синхронизации с "облаком".

Решение – сделать директорию, доступную по WebDAV и синхронизируемую с дропбоксом. У меня дома стоит "чёрный ящик" – файл-сервер Netgear ReadyNAS на Linux. Вот на нём всё и будет работать.

Во всей истории есть две сложности: динамический внешний ip-адрес и синхронизация с дропбоксом.
Первая решается регистрацией в DynDNS и настройкой роутера для автоматического оповещения DynDNS о смене IP. На многих современных роутерах есть такая возможность. Если её нет, нужно установить клиент DynDNS на каком-нибудь постоянно работающем компьютере в домашней сети, например, на файл-сервере.
На dyndns.org можно бесплатно занять доменное имя, по которому Вы будете соединяться со своим сервером из любой точки мира, не заботясь об ip-адресе. Помимо собственно обслуживания DNS, сервис предоставляет информацию по Вашему ip-адресу и историю его изменения.

Для правильной работы WebDAV-сервера потребуется настроить перенаправление портов на маршрутизаторе. Тогда поступивший на Ваш ip-адрес запрос маршрутизатор перенаправит его на указанный компьютер из внутренней сети. Поэтому важно в правилах DHCP-сервера на маршрутизаторе указать статический внутренний ip-адрес для компьютера, на котором работает сервер WebDAV. Статический ip-адрес указывается по соответствующему MAC-адресу сетевого адаптера.

Теперь займёмся настройкой Port Forwarding. Всем известно, что протоколу HTTP соответствует порт 80, SSH – 22, HTTPS – 443. Для WebDAV нам как раз и понадобится 443/HTTPS. На вкладке NAT настроек своего маршрутизатора укажите правила для портов 443, 22 и, желательно, 80.

Скорее всего придётся также открыть доступ извне к сервисам Вашей внутренней сети, чтобы Вы могли свободно обращаться к серверу WebDAV.

SSH Вам может понадобится для удалённого управления внутренностями сервера, а HTTP просто грех не использовать. Если Вы не собираетесь хостить свой сайт на сервере у себя дома, то желательно хотя бы поставить "заглушку", чтобы не дразнить интересующихся открытой страницей настроек роутера.

У многих модемов-маршрутизаторов отсутствует функция NAT Loopback (dlink.ru/ru/faq/160/139.html), поэтому изнутри вы не сможете видеть, как выглядит Ваш сервис из интернета. Убедиться, что всё работает, получится только с другого компьютера в другом месте, либо со смартфона по 3G.

Половина дела сделано, остаётся поднять сервер WebDAV на Вашем компьютере или файл-сервере, и настроить синхронизацию с Dropbox. На устройствах NAS от Netgear предусмотрена в числе прочего возможность доступа к сетевым ресурсам по WebDAV. Вообще должен сказать, что в этом отношении Netgear очень хороши: высокая скорость доступа по Gigabit LAN, множество функций, которые могут Вам понадобиться, куча протоколов доступа и нормальный Linux на борту.

Откройте страницу настроек NAS, включите доступ по протоколу WebDAV к нужным папкам:

Кроме того, подключите директорию с файлами для веб-сервера, который работает по протоколу HTTP, чтобы по адресу http://yourname.dyndns.org выводился не список общих ресурсов, а Ваш сайт или страница-заглушка:

Теперь всё должно работать: доступ по WebDAV, SSH и HTTP извне к Вашим ресурсам.

Если к уже сделанному Вы хотите добавить возможность синхронизации с дропбоксом, понадобится установить в систему службу Dropbox. В моём случае с этим приходится возиться, подключившись по сети через SSH, поскольку у сервера NAS нет монитора с графическим интерфейсом. Если на устройстве уже работает дропбокс, установите его от имени другого пользователя. На сайте есть подробная инструкция о том, как это сделать: http://wiki.dropbox.com/TipsAndTricks/TextBasedLinuxInstall
После установки dropbox выдаст ссылку, которую нужно активировать на сайте, после чего начнётся синхронизация. Для успешного решения нашей задачи нужно сделать символическую ссылку, которая свяжет папку Dropbox с директорией, доступной по WebDAV, или же сразу устанавливать распаковывать архив.tar.gz с дропбоксом в родительской папке, содержащей общий ресурс:

На ReadyNAS общие директории хранятся в /c/, и архив со службой dropbox нужно распаковывать в эту же директорию.

В планшете (ради чего всё и затевалось) при импорте документов из интернета нужно указать адрес сервера (и папку), а также имя и пароль:

Адрес сервера: https://yourname.dyndns.org
Имя пользователя, пароль: Ваши учётные данные на NAS

После успешной аутентификации в программе появится список папок, откуда можно импортировать данные и куда можно будет сохранять документы.

Конечно, на Mac OS и Windows тоже можно подключаться к сетевой папке для чтения и записи. Однако в Windows Vista и Windows 7 WebDAV работает, мягко говоря, через одно место, подключится через проводник не получится. Зато всё работает через командную строку:

net use * https://yourname.dyndns.org/yourdirectory

Так как именно протокол определяет то, как общаются между собой программы и сервер, от его выбора зависит примерно всё. И то, как будут устроены клиенты, и то, какие возможности работы с файлами у них будут.

Сегодня мы хотим рассказать о причинах, которые остановили наш выбор именно на WebDAV и сделали его протоколом для клиентов Яндекс.Диска .

Благодаря API , реализованному на его базе, с нашим сервисом уже работают ABBYY FineScanner , Handy Backup 7 , ES Проводник и .

Перед тем как выбрать протокол, мы определили для себя важнейшие требования к нему:

  1. Скорость работы;
  2. Открытая лицензия;
  3. Возможность реализации всех необходимых действий: аутентификации, поддержки файловых операций, конкурентного доступа к файлам, докачки с сервера и возобновления закачки на сервер;
  4. Распространённость - он должен работать с целевыми операционными системами (в первую очередь Windows, Mac OS X, Linux) «из коробки» или с минимальными доработками.
Мы даже были готовы разрабатывать свой собственный протокол, если бы существующие нам не подошли. Изменение протокола после запуска потребовало бы много человекочасов работы, поэтому нужно было изучить разные варианты и выбрать лучше всего отвечающий нашим требованиям.

FTP . Этот протокол для удалённой работы с файлами проверен временем. Но создавался он без учёта требований информационной безопасности, что стало для нас его существенным недостатком. Помимо этого, он не поддерживает многие необходимые нам операции, например, передачу метаданных вместе с содержимым файла. И требует для подключения специальные приложения.

BitTorrent . Так как речь сразу шла о синхронизации между девайсами, то использовать соединение между ними без создания нагрузки на серверы было бы очень полезно, но это потребовало бы двойной работы по разработке клиента. Вдобавок возникли бы проблемы при работе через NAT-ы и firewall-ы, что сильно снизило бы пользу от использования этого протокола.

Amazon S3 . Это хранилище использует свой собственный протокол, основанный на HTTP. Мы рассматривали возможность использования API S3, однако отказались от этой идеи из-за отсутствия в нём привычной работы с каталогами и из-за необходимости использовать специальные приложения для доступа.

WebDAV . Основанный на HTTP и XML и нетрудно расширяемый, он поддерживает в спецификациях практически все, что нам нужно. C ним достаточно хорошо работают предустановленные пакеты во всех целевых операционных системах. Кроме того отдел разработки десктопных клиентов Яндекс.Диска, занимавшийся XMPP-сервером Яндекса, на тот момент уже имел опыт работы с открытыми протоколами на базе XML.

Главной причиной, по которой нам не хотелось создавать свой собственный протокол, было то, что работать с ним смогут только наши приложения, а мы хотели открытости.

В итоге, из всех обсуждавшихся вариантов мы выбрали WebDAV. Единственное, чего не хватало в протоколе - это информирования клиента об изменениях на сервере, очень важной фичи синхронизации. Но так как протокол расширяем, это не стало проблемой.

После выбора протокола началась работа над прототипом Яндекс.Диска. Наш WebDAV-сервер мы написали на Erlang . В качестве фреймворка для веб-сервера был выбран mochiweb , достаточно легковесная и хорошо знакомая нашим разработчикам библиотека. Она же была использована в известной статье о подключении миллиона пользователей к одному серверу - A million user comet application . Также мы думали и об использовании веб-сервера Yaws , который можно сравнить с Apache. Это полноценный веб-сервер, умеющий отдавать статику, запускать CGI-скрипты, обрабатывать специальные страницы с серверными скриптами. Но это всё было нам не нужно. Если бы мы начинали делать проект сейчас, выбор пал бы на Cowboy , так как он предоставляет больше возможностей по определению проблем с соединением.

После изучения протокола WebDAV началась работа над операциями листинга файлов и каталогов на сервере. В качестве хранилища для прототипа использовались mysql-база данных, в которой хранилась мета-информация и обычная файловая система для хранения содержимого файлов. Масштабирования и высокой надёжности на этом этапе не требовалось.

Схема была довольно простой, так как это был прототип. Как обычно бывает с файловыми системами, встал вопрос ограничений на пути. Так как максимальная длина пути к ресурсу в протоколе не оговаривалась, было решено сделать длину компоненты пути в 255 символов, а количество уровней вложенности неограниченным. Примерно таблица хранилища файлов выглядела так:

Одной из первых нетривиальных задач стал листинг корня, в котором ничего нет. Сложность в том, что метод PROPFIND , кроме просто листинга, выполняет ещё и задачу чтения свойств ресурса. Необходимо было правильно разбирать запрос, понимать, что мы можем выдать, а что нет; формировать правильный ответ. В качестве первого клиента использовался встроенный в Ubuntu gvfs. Отладив работу с ним, мы решили проверить работу подключения из Windows 7 и обнаружили, что он с нами не работает. Исследование работы с другими серверами показало, что встроенные в Windows клиенты не обрабатывают пространство имён «DAV:», если оно объявлено дефолтным, без префикса. Другие стандартные клиенты оказались более терпимыми и легко переваривали выдачу, сформированную специально для клиентов Windows. К счастью, это была единственная несовместимость, которую нам удалось найти.

Когда работа над листингом была завершена, мы реализовали тривиальные операции создания каталогов и удаления ресусов.

Получаю сообщение об ошибке

Если вы получаете сообщение об ошибке при попытке подключиться по протоколу WebDAV, убедитесь, что вы указали верные настройки для доступа. Проверьте правильность пароля, раскладку клавиатуры, а также не включена ли клавиша Caps Lock. Кроме того, убедитесь в том, что на Диске достаточно свободного места для копируемых файлов. Также нельзя загружать файлы объемом более 50 ГБ.

Примечание. Подключение к WebDAV-серверу происходит только с помощью SSL-шифрования. Если программа, с помощью которой вы подключаетесь, не поддерживает SSL, соединиться с сервером не удастся.

Неправильное имя папки. Задайте другое имя.

Эта проблема возникает из-за неполадок в самой ОС Windows, которая не поддерживает подключение по протоколу WebDAV через защищенный протокол HTTPS. Мы работаем над решением этой проблемы.

Я удалил файлы, но их нет в Корзине

При удалении по WebDAV файлы не попадают в Корзину, а сразу удаляются с серверов Яндекса. Если вы удалили файлы по WebDAV, восстановить их уже не получится.

Написать в службу поддержки