Удаленный доступ через протокол WebDAV

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

Сегодня мы хотим рассказать о причинах, которые остановили наш выбор именно на 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. К счастью, это была единственная несовместимость, которую нам удалось найти.

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

Подробности root Новости 17 января 2011

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

Настройка WebDAV

Для начала я скажу Вам следующую картину. ISPConfig 3 установленная по материалу Идеальный сервер - Ubuntu 10.10 имеет особенность. Она состоит в том что при подключении к вашему сайта по FTP логин и пароль задаются именно те, которые вы указали в настройках. Оно и логично, но вот при установку чего либо через сайт вы получите совершенно другой результат. Файлы переписываются на другую группу и пользователя www-data и www-data. А это грозит тем что файлы и каталоги от другого владельца станут не доступны и запись и удаление. И тут я задумался, если доступ к файлам закрыт для FTP пользователя, то выход из такой ситуации будет в применении WebDAV .

Начнем с настройки нашей панели управления хостингом ISPConfig 3 перейдем в раздел сайты - пункт Webdav User.

Здесь мы может добавить доступ WebDAV для каждого сайта в отдельности. Для этого мы нажимаем на кнопку Добавить нового WebDAV пользователя :

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

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

Продолжая тему WebDAV протокола, я покажу как выглядит подключение по протоколу WebDAV в Windows 7. Я буду использовать только ресурсы самой операционной системы Windows 7 (домашняя расширенная).

Подключение к нашему серверу по WebDAV протоколу выглядит как подключение сетевого диска, поэтому я опишу самый простой и быстрый способ. Откроем Компьютер на рабочем столе или из Пуск (для примера Windows XP имеет иконку с названием Мой компьютер ). В открывшемся окне Компьютер мы должны подключить сетевой диск, если мне не изменяет память то начиная с Windows Vista дополнительные настройки по умолчанию скрыты, а для того что открыть эту панель необходимо в нашем открытом окне нажать клавишу Alt , которая раскроет эти дополнения, где мы выберем Сервис - Подключить сетевой диск... :

В своем случае для подключения подключение по протоколу WebDAV я указываю сетевое имя как адрес интернет страницы , да Вы не ошиблись именно с http:// Внимание я обращаю на тот факт что имя сайта указывается именно то которое вы создавали в панели управления хостингом ISPConfig 3, но в моем случае стоит редирект (материал WWW redirect), поэтому ссылка автоматически перенаправляет на http://www.. Вернемся к настройке при указании адреса нажмем кнопку Готова , Windows произведет подключение, если все удачно то система запросит логин и пароль, в моем тестовом подключении я использовал логин llirikkswww и пароль 123456. В результате мы получим подключенный ресурс доступ к которому мы получаем как к простому локальному диску.

Альтернатива подключения к WebDAV

Самой простой альтернативой является интернет браузер, я лично производил проверку на Internet Explorer, Mozilla Firefox, Google Chrome. Все как один подключались к серверу и запрашивали логин и пароль (Адрес сервера, логин и пароль остаются неизменными для любых подключений).

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

Заключение о WebDAV в ISPConfig 3

Здесь я хотел бы услышать Ваше личное мнение о данном сервисе и физической ее реализации. Лично мое мнение: это может пригодится для коллективной работы на сайте например для отправки или коллективной работы с файлами. Как пример для фотоцентра для загрузки графических файлов. Для больших офисных решений для работы над одним проектом, например проект + смета + документация + коммерческие предложения.

Хотелось бы услышать Ваше мнение, на хрена такое кому-то вообще надо:)))

Обновлено: 16 сентября 2014 Просмотров: 9969

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

Примерно год назад я написал статью о том как , где ответил на вопросы:

— Как зарегистрировать и настроить диск?

— Как установить программное приложение на компьютер?

— Как увеличить дисковое пространство в облачном хранилище?

— Как создавать скриншоты с помощью Яндекс.Диска?

Но, на наряду с общим количеством вопросов по настройке Яндекс.Диска, мне регулярно задают два вопроса:

  1. Как подключить диск через ?
  2. Как установить пароль на Яндекс.Диск?

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

Удалённое подключение к Яндекс.Диску.

Сразу скажу, — подключить Яндекс.Диск через ftp соединение нельзя. Зато это можно сделать через WebDAV (набор расширений и дополнений к протоколу HTTP).

По сути это-то же самое, для рядового пользователя разницы никакой, только настраивается немного по-другому.

Суть в том, что используя технологию WebDAV, вы удалённо подключаетесь к Яднекс.Диску. Тем самым вы можете создать сетевой диск на своём компьютере и работать с ним через «Проводник» или любой другой файловый менеджер. Примерно все, так же как и при ftp подключении.

При этом все файлы будут храниться на удалённых серверах Яндекса. На вашем компьютере будут отображаться лишь иконки для удобства работы.

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

В качестве примера создания сетевого диска, я покажу, как это сделать с помощью «Проводника Виндовс» и файлового менеджера Total Commander.

Как создать сетевой Яндекс.Диск в проводнике Windows ?

Добавление нового элемента в сетевое окружение

На этом шаге нужно ввести адрес сервера для подключения:

Https://webdav.yandex.ru

Теперь вводите имя для сетевого диска. Назвать вы его можете как угодно. Разницы это не имеет.

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

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

Как создать сетевой Яндекс.Диск в Total Commander?

В отличие от предыдущего способа, этот способен решить оба вопроса, озвученных в начале статьи. То есть и вопрос удалённого подключения, и безопасности.

Но для начала вам нужно будет установить дополнительный плагин в Total Commander.

Итак, для установки плагина его нужно вначале скачать. Для этого переходите на страницу плагинов для TC . Находите плагин WebDAV и скачиваете его на компьютер.

Выбираете раздел «Плагины» и нажимаете на кнопку «Настройка» в подразделе «Плагины файловой системы (. WFX

Далее, нажимаете на кнопку «Добавить» — открываете папку с плагином и выбираете файл плагина, в соответствии с разрядностью вашей операционной системы. У меня 64-разрядная система, и я выбираю файл davplug.wfx64.

Выбрав файл, нажимаете кнопу «ОК» . И ещё раз «ОК» .

Всё, плагин установлен и всё готово для подключения Яндекс.Диска с помощью WebDAV клиента.

Для этого открываем «Сеть» и видим там папку WebDAV , открываем её.

Перед вами откроется содержимое папки, где у вас есть два варианта создать удалённое подключение.

Первый вариант, сделать подключение один раз и использовать его постоянно. Но, при этом содержимым диска смогут воспользоваться продвинутые пользователи, которые умеют пользоваться Total Commander.

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

Вариант 1.

Итак, если вы хотите создать постоянное подключение по первому варианту, то нажимаете клавишу F 7 – вводите название соединения.

Далее, заполняете адрес сервера (https://webdav.yandex.ru), логин и пароль от почтового ящика Яндекс. И отмечаете чекбоксы, как указано на скриншоте. Быстро это делается выбором настроек по умолчанию Microsoft IIS.

После того как вы нажмёте кнопку «ОК», у вас появится папка с содержимым Яндекс.Диска.

Открыв эту папку – вы подключаетесь к Яндекс.Диску.

Для отключения от диска достаточно нажать на кнопку «Отключение» .

Если же вы хотите удалить это соединение, то просто выберите папку и нажмите F 8 .

Вариант 2.

Если вы хотите использовать Яндекс.Диск на компьютере, но при этом беспокоитесь, что посторонние могут получить доступ к его содержимому, то для вас подойдёт временное подключение.

То есть, вы подключаетесь к диску, работаете с ним, а когда уходите из-за компьютера, то отключаетесь. При этом повторное подключение возможно только после настройки соединения, где нужны логин и пароль.

Это подключение делается точно так же, как и в первом варианте, только вы не создаёте папу с подключением, а открываете папку Quick connection . И настраиваете подключение.

И перед вами сразу откроется содержимое Яндекс.Диска.

А теперь для закрепления материала предлагаю посмотреть видеоурок, где я шаг за шагом показываю и рассказываю описанные выше действия.

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

А у меня на сегодня всё. Всем желаю удачи и хорошего настроения! До встречи в новых видеоуроках и статьях.

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

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

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

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

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

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

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

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



Есть вопросы?

Сообщить об опечатке

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