Что такое webdav. Подключение к Яндекс Диску через WebDAV-клиент. Получаю сообщение об ошибке

Помощь 22.03.2019
Помощь

Если бы в качестве введения я начал расписывать достоинства облачных хранилищ данных, ты бы подумал, что меня только что разморозили после двадцатилетнего анабиоза или что я серьезно злоупотребляю снотворными:). Поэтому скажу кратко, по-программистски: когда передо мной встала задача сделать программу, которая могла бы без привязки к API конкретного сервиса работать с файлами на множестве хранилищ (речь шла о бэкапе), оказалось, что это не так просто. Обо всех тонкостях и подводных камнях проделанной работы я решил тебе рассказать в этой статье.

WebDAV

WebDAV (Web Distributed Authoring and Versioning) - это протокол для передачи данных и работы с ними, построенный поверх HTTP 1.1. Здесь следует заметить, что передача может быть как защищенной, так и незащищенной. В самом протоколе защищенность отсутствует, но она может быть добавлена через реализацию аутентификации на веб-сервере и шифрование посредством SSL, следовательно, в таком случае будет использоваться не HTTP, а HTTPS.

Изначально DAV разрабатывался для совместного создания и редактирования веб-страниц, но в процессе использования он нашел применение в качестве сетевой распределенной файловой системы, эффективной для работы в высоконагруженной среде и поддерживающей неустойчивое соединение. Таким образом, DAV подходит для управления файлами на веб-серверах, иными словами, реализации облачных хранилищ информации, где и был применен. С его помощью можно выполнять основные операции над файлами, содержащимися на сервере, проводить расширенные операции, как то: блокировка, получение метаданных, контроль версий и другие. Этот протокол стал заменой для старого доброго FTP, чье время подошло к концу.

WebDAV предоставляет семь команд:

  • PROPFIND - получение свойств объекта на сервере в формате XML;
  • PROPPATCH - изменение свойств объекта;
  • MKCOL - создать папку на сервере;
  • COPY - копирование на стороне сервера;
  • MOVE - перемещение на стороне сервера;
  • LOCK - заблокировать объект;
  • UNLOCK - снять блокировку с объекта.

Таким образом, WebDAV позволяет изменять свойства хранящихся на сервере объектов, выполнять поиск с учетом свойств, блокировать объект (в нашем случае - файл) для организации возможности его редактирования только одним пользователем в распределенной среде, в которой доступ могут иметь много юзеров, управлять версиями файлов (посредством унаследованных команд check -in, -out), а также производить расширенный контроль доступа к файлам на основе списков.

Кроме того, WebDAV поддерживает унаследованные команды: GET - для скачивания файла, PUT - для заливки на сервер и DELETE - для удаления объекта. Мы не будем рассматривать все команды; в моем случае для реализации функционала утилиты мне понадобилось лишь четыре.

Ныне в разработке протокола участвуют Microsoft, Mozilla, Novell, IBM и другие. Поэтому не стоит удивляться тому, что поддержка WebDAV присутствует во многих продуктах Microsoft (в том числе Internet Explorer, проводнике, веб-сервере IIS и других), браузере Mozilla Firefox, продуктах фирмы Novell, IBM. Дополнительно, с помощью установки плагинов «подружить» с протоколом можно Total Commander и FAR.

Как уже было упомянуто, в Windows удаленное хранилище WebDAV можно подключить в проводник как дополнительный диск. Подобным образом можно поступить в OS X, организовав подключение к WebDAV-серверу как дополнительную директорию в обозревателе Finder.

Возможные решения

Передо мной стояла задача подключиться и организовать работу с данными на двух файловых хранилищах: Яндекс.Диск и Dropbox. Оба эти сервиса поддерживают работу по протоколу WebDAV. Регистрируя почту на Яндексе, ты автоматом получаешь доступ к 10 Гб облачного хранилища, к которому можно подключиться не только через стандартный клиент, но и с помощью сторонней тулзы (например, своей программы) посредством протокола WebDAV. При регистрации на Dropbox ты получаешь 5 Гб дискового пространства, которое можно использовать через стандартный клиент. Однако, чтобы получить доступ к хранилищу по WebDAV, надо пройти дополнительную регистрацию. В итоге, как выяснилось, этот доступ не бесплатный, тем не менее после регистрации дается свободный доступ на две недели. Размеры хранилищ можно увеличивать: или через доплату, или с помощью участия в разных акциях, проводимых сервисами, например находить баги и сообщать о них разработчикам.

Когда мне понадобилось написать программу для работы по WebDAV-протоколу, я первым делом заглянул в Win32 API, чтобы посмотреть, есть ли там функции для этого, подобно имеющимся для работы с FTP. Забегая вперед, отмечу, что сроки у меня стояли сжатые, поэтому использовать функции уровня API я не собирался. Как и следовало ожидать, в Win32 API, начиная с версии для Windows Vista, входит WebDAV API . В него входит одно перечисление, три структуры и набор функций. Я подумал, что это хороший знак, поскольку на основе стандартного API непременно имеются более высокоуровневые решения и мне не придется засиживаться с функциями API-интерфейса.

Тут под руку попалась Delphi XE3, и я решил проверить, какие инструменты для работы с протоколом WebDAV есть у нее. Оказалось, что в ней (на вкладке Indy Clients палитры компонентов) есть компонент IdWebDav. Я уже подумал, что на этом исследования закончились… Но обнаружилось, что этот компонент ни в какую не коннектится к Яндексу (Яндекс.Диск был для меня более приоритетным сервисом, поэтому все тесты я в первую очередь проводил на нем).

Затем я решил воспользоваться старой, но проверенной временем сетевой библиотекой Synapse для Delphi. К тому же в Рунете есть прекрасный сайт, содержащий несколько статей, посвященных этой либе, www.webdelphi.ru . На первых порах работа двигалась хорошо, и мне удалось реализовать несколько функций протокола: создание папки, скачивание файлов, получение свойств объектов. Но самую главную функцию - загрузку файлов на сервер с локального компа - реализовать так и не удалось. Стало грустно: в интернете об этом протоколе толковой информации нет. Bing нашел несколько платных наборов компонентов для работы с сетью, одной из которых я ради интереса решил воспользоваться, чтобы выяснить, реально ли загрузить файл на Яндекс.Диск. Этой либой оказалась Clever Internet Suite. Создав компонент класса clWebDav, одной строчкой кода удалось закинуть файл на сервер:

где stream - файловый поток, предварительно созданный для чтения.

Прекрасно, но отталкивает стоимость этой либы: более 500 у. е., что не есть гуд. Если ты захочешь воспользоваться этим способом, то обрати внимание на версию библиотеки: к Яндексу можно подключиться только с помощью версии 7.0 и выше, если воспользоваться распространенной на просторах Сети версией 6.0, то загрузка данных на сервер не удастся. На этом «играться» с Delphi мне надоело, и я решил обратиться к dotNET и C#.

Подключаемся к Yandex.disk + создаем коллекцию

Поскольку WebDAV работает поверх HTTP/S, я решил воспользоваться классами HttpWebRequest и HttpWebResponse, которые входят в.NET Framework начиная с версии 2.0. При этом мы будем использовать.NET Framework 4.0 - почему, скажу ниже. Коротко говоря, первый из перечисленных классов представляет HTTP-запрос, второй - HTTP-ответ. Наша задача - правильно сформировать запрос таким образом, чтобы его мог понять WebDAV-сервер. Чтобы узнать, как правильно оформлять запросы WebDAV-серверу, обратимся к документации Яндекса по использованию протокола WebDAV .

Следующим действием напишем небольшую программу, способную выполнить четыре операции: создать папку на удаленном хосте, загрузить объект, скачать объект и удалить объект. Этих операций достаточно для большинства приложений, решающих производственные задачи. Для простоты создадим WinForms-приложение. В паре слов расскажу о своей проге. Она представляет собой консольное приложение, запускаемое батником по расписанию. Ее основное действие - это заливка файлов на удаленный хост, при этом в ее задачи входит корректная обработка маски для выбора файлов, а также обработка путей, по которым они размещены, плюс правильное создание в облаке иерархии папок, подобной размещенной на локальном диске. Кроме того, поскольку программа работает в автоматическом режиме, она создает файл с логами. В нашей сегодняшней программе мы опустим эти действия (очевидно, что они не относятся к теме) и сконцентрируемся на протоколе WebDAV.

Обрати внимание: при создании заготовки проекта за основу лучше взять.NET Framework 4.0. И хотя поддержка WebDAV появилась еще во второй версии, по тестам стало видно, что та же самая программа, перекомпилированная с использованием.NET 4, работает в два раза быстрее, и это касается скорости работы с файлами и их пересылкой.

После создания заготовки приложения размести на его форме четыре кнопки. Первой операцией, которую мы реализуем, будет создание папки (или коллекции). Она самая простая из всех. На заметку: хотя Яндекс.Диск работает по защищенному протоколу HTTPS, папку можно создать по HTTP. Также на форме нам понадобятся четыре поля ввода: для задания адреса удаленного хоста (пока нацелимся на Яндекс.Диск: https://webdav.yandex.ru/), для ввода имени пользователя, пароля (для аутентификации на Яндексе) и ввода имени папки, которую мы хотим создать в облаке (рис. 1). Обрати внимание: адрес сервера надо вводить вместе с указанием протокола, в данном случае https://.

Первым делом в коде подключи пространства имен: using System.Net; - для работы с сетью и using System.IO; - для файлового ввода-вывода. Затем создай обработчик события нажатия на кнопку CreateDir. В него напиши такой код:

String folder = folderEdit.Text; String url = urlEdit.Text; String userName = nameEdit.Text; String password = passwordEdit.Text; url += folder; url = url.TrimEnd(); HttpWebRequest request = HttpWebRequest.Create(url) as HttpWebRequest; request.Credentials = new NetworkCredential(userName, password); request.Method = WebRequestMethods.Http.MkCol; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); HttpStatusCode code = response.StatusCode;

Вкратце обсудим код. В начале для удобства размещаем данные из полей ввода в переменные: имя папки, адрес хоста, имя и пароль юзера. Далее формируем URL-адрес: к адресу хоста прибавляем имя создаваемой папки. Как и у HTTP, у WebDAV есть стандартный номер порта - 443, поэтому его указывать необязательно. Теперь на основе URL мы можем создать объект HTTP-запроса, что делается в следующей строке. После создания надо заполнить некоторые его свойства. То есть необходимо указать такие данные, которые будут переданы серверу в заголовке запроса. Смотрим документацию Яндекса (ссылка приведена выше). В число необходимых параметров входят данные аутентификации. Яндекс принимает эти данные в двух видах: Basic - логин и пароль, QAuth - токен по протоколу QAuth. Мы выберем первый путь. Однако в таком случае данные должны быть закодированы. Это осуществляет объект класса NetworkCredential, конструктор которого получает имя и пароль в виде строк. Созданный объект этого класса присваивается свойству Credentials объекта запроса. Следующей строкой мы сообщаем, какую команду мы хотим выполнить, - MKCOL. В этом случае никакие данные передавать/получать не требуется, и сразу после этого мы отправляем запрос. Далее мы можем посмотреть, какой ответ вернул сервер, в случае успеха ответом будет строка Created. В классе HttpWebRequest определено много ответов на все случаи совместного общения клиента и сервера.

WebDAV-протокол не позволяет создать несколько вложенных папок за один запрос, например /folder1/folder2/; можно создать только одну папку: /folder1/. Если каталог существует, а отправленный запрос пытается создать одноименную директорию, в таком случае сервер сгенерирует исключение, которое надо перехватить конструкцией try/catch. В приведенном выше примере не происходит обработка исключений, поэтому если будешь использовать этот код в своем приложении, то не забудь ее добавить. Если необходимо узнать, существует каталог или нет, то для этого можно воспользоваться запросом PROPFIND, а потом получить и пропарсить ответ сервера, содержащий инфу в формате XML о имеющихся на сервере объектах. Но это получится долго, и, на мой взгляд, лучше использовать запрос MKCOL и в случае присутствия одноименной папки обработать исключение. Таким образом в своей консольной утилите я создаю иерархию папок. Кроме того, если одноименный каталог уже существует, происходит заход в него.

Удаление объекта

Удаление файла и/или директории по протоколу WebDAV реализуется так же просто, как создание коллекции. Для реализации этой задачи послужит приведенный выше код, в котором надо заменить строчку, задающую выполняемый сервером метод, на следующую:

Request.Method = "DELETE";

Как видно, в классе WebRequestMethods.Http отсутствует метод Delete, но мы можем задать желаемый метод в виде строки. Она будет отправлена на сервер, главное, чтобы он был в состоянии обработать и выполнить этот метод, а WebDAV-сервер, как мы знаем, на это способен.

В этом случае также лучше использовать конструкцию try/catch для перехвата исключения, которое может возникнуть по причине отсутствия удаляемого объекта.

Скачивание файла

Чтобы скачать файл из облачного хранилища по протоколу WebDAV, нужно проделать не так уж много манипуляций с имеющимся кодом. Но для начала закинь какой-нибудь файл в облако стандартными средствами (через веб-интерфейс или десктопный Яндекс-клиент). По замыслу, при скачивании файла в четвертое (нижнее) поле ввода мы будем вводить имя файла, который хотим закачать. Это же имя присвоим файлу-результату на локальном компе. Заметь, на сервере мы можем указать /Software/file.txt и будет получен доступ к файлу в папке Software, однако в локальной файловой системе автоматом папка создана не будет, поэтому ее предварительно надо создать. Коротко говоря, мы будем качать файл ZuneSetupPkg.exe (незаменимая тулза для работы с Windows Phone, которую частенько приходится доустанавливать на чужих компах, поэтому она всегда у меня под рукой - в облаке) из корня Яндекс.Диска в директорию с экзэшником.

В обработчике нажатия на кнопку Download после инициализации переменных, создания объекта-запроса и задания полномочий (Credentials) задай тип метода: GET (см. исходник в материалах к номеру). Затем, получив ответ сервера (объект класса HttpWebResponse), объявим переменные для чтения данных:

Int byteTransferRate = 8192;// Размер буфера byte bytes = new byte;// Буфер int bytesRead = 0; long totalBytesRead = 0; long contentLength = long.Parse(response.GetResponseHeader("Content-Length"));

В последней строчке кода читаем из заголовка ответа от сервера размер файла и сохраняем его в переменную. Дальше создаем файловый поток для записи файла на диск:

FileStream fs = new FileStream(fileToDownload, FileMode.Create, FileAccess.Write);

Затем получаем поток от сервера:

Stream s = response.GetResponseStream();

Порциями читаем из него данные и пишем их в файл, пока есть что писать:

Do { bytesRead = s.Read(bytes, 0, bytes.Length); if (bytesRead > 0) { totalBytesRead += bytesRead; fs.Write(bytes, 0, bytesRead); } } while (bytesRead > 0);

После того как все данные записаны в файл, закрываем оба потока и серверный ответ. Во время считывания данных мы увеличивали переменную totalBytesRead на количество считанных байт. В этом случае при отсутствии ошибок размер этой переменной должен стать равным размеру, который мы считали из заголовка, и если это так, то файл скачан корректно и мы выводим сообщение об этом (рис. 2), если же размеры не равны, тогда произошла неудача, об этом мы тоже сообщаем пользователю.

Этот код не лишен исключений, которые надо ловить, среди них: (404) невозможно найти файл (на сервере), невозможно записать в указанное место и многие другие.

Загрузка файла на сервер

Последняя операция, без которой наша утилита будет неполной, - это загрузка файла на удаленный хост. Это самая «хитрая» операция. Обсужденные выше операции не вызвали ни малейшего затруднения, но эта оказалась покруче! Я уже рассказывал, что с реализацией загрузки файла были трудности при использовании других средств разработки. И не все гладко было на C#. Вначале в документации посмотрим, какой запрос для заливки файла ждет Яндекс (рис. 3).

В полноценной программе надо осуществлять закачку сразу нескольких файлов (по желанию юзера), выбор файлов по маске, создание иерархии каталогов и, наконец, обработку ошибок. Мы же, чтобы не толочь воду в ступе, все это опустим и сконцентрируемся на загрузке одного заданного файла, без создания папок и обработки ошибок. Все это оставим тебе в качестве домашнего задания. Итак, в подготовленной мной проге из обработчика нажатия на кнопку вызывается метод UpdateFile, ему передаются имя хоста и имя загружаемого файла, которые берутся из соответствующих полей ввода. Начало самого метода подобно рассмотренным выше, однако теперь в заголовке запроса мы передаем на выполнение сервером команду PUT, то есть выказываем наше желание загрузить файл. Если при выполнении предыдущих запросов мы особо не опирались на документацию, то на этот раз она нам очень пригодится: включим в заголовок запроса все рекомендуемые Яндексом поля, а также некоторые дополнительные. Итак, рассмотрим код заголовка, а потом обсудим траблы:

Request.ContentLength = fileLength; request.KeepAlive = false; request.ReadWriteTimeout = -1; request.Timeout = -1; request.AllowWriteStreamBuffering = false; request.PreAuthenticate = true; request.SendChunked = false; request.ContentType = "application/binary"; request.ProtocolVersion = HttpVersion.Version11; request.ServicePoint.ConnectionLimit = 1; request.AllowAutoRedirect = false; //request.Expect = "100-continue"; request.ServicePoint.Expect100Continue = true; request.Accept = "*/*";

Значения некоторых параметров выведены методом научного тыка. Некоторые свойства зависят от других. Так, лучше отключить постоянное подключение (вторая строчка), ибо при этом генерируется исключение о невозможности одновременной чтения и записи в поток. Следующие два свойства задают тайм-аут для чтения и записи в сетевой поток. Значение -1 означает бесконечность. Размер загружаемого файла может быть неопределенно большим, поэтому мы не можем загадывать на время, которое понадобится для его загрузки. Следующее свойство: AllowWriteStreamBuffering - очень любопытное, оно включает или отключает буферизацию данных перед отправлением. При включении отправляемый файл сначала загружается в память, только после этого выгружается на сервер. Странность этого свойства заключается в том, что на некоторых хостах можно без проблем, отключив буферизацию, залить файл, однако на других будет всплывать исключение о необходимости буферизации. Возможно, это связано с какими-то настройками реестра или связи; не исключаю также различия между сервисами. В случае если буферизация включена и на сервер отправляется большой файл, может не хватить ресурсов (исключение SystemOutOfMemory). В свою прогу можешь добавить флажок для включения и отключения буферизации. Если буферизация отключена, тогда надо включить флаг PreAuthenticate (следующее свойство), с помощью которого данные аутентификации отправляются вместе с заголовком. Следующий параметр SendChunked (только для Яндекс.Диска) позволяет загружать на удаленный хост файлы заранее неопределенного размера, на что Dropbox отвечает исключением. Далее указываем тип передаваемых данных, версию используемого протокола (11 означает 1.1), количество возможных HTTP-подключений: больше одного ни к чему. Запрещаем автоматическое перенаправление. Чтобы задать следующее рекомендуемое поле: “Expect: 100-continue”, включающее ожидание ответа для запроса загрузки, нельзя использовать закомментированное свойство, надо использовать код, который строчкой ниже: request.ServicePoint.Expect100Continue = true;. Последним свойством HTTP-заголовка включается маска для принимаемых объектов, в нашем случае принимаются любые файлы: с произвольным именем и расширением.

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

Итоги

На этом разработка нашей утилиты подошла к концу. В ней мы реализовали весь планируемый функционал - четыре самые нужные команды, без которых не может обойтись ни один менеджер управления файлами на удаленном хосте. Мы не стали привязываться к услугам определенного хостинга, используя его API, мы разработали универсальное приложение, общающееся с сервером по стандартному протоколу WebDAV. Это позволило нашей программе, используя один код, подключаться сразу к нескольким серверам (я тестировал на Yandex.disk и Dropbox). Тем не менее, как мы увидели, разные сервисы несколько по-разному интерпретируют и поддерживают протокол.

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

На этой ноте я хочу пожелать тебе удачи во всех делах и быть побольше на свежем воздухе:). До встречи на страницах ][!

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

В Яндекс.Диск вы можете хранить свои файлы в «облаке», взаимодействуя с хранилищем, с помощью специальной программы-клиента, или управляя своими данными через веб-интерфейс, используя для этого браузер.

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

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

WebDAV (Web-based Distributed Authoring and Versioning) - переводится примерно так: веб-средства для распределенной разработки и управления версиями. Это набор расширений, которые устанавливаются поверх протокола HTTP, которые позволяют пользователям совместно редактировать и управлять файлами на удаленном веб-сервере.

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

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

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

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

Как подключить Яндекс.Диск как сетевой диск к компьютеру на Windows

Для подключения сетевого диска в операционной системе Windows, сначала нужно будет кликнуть правой кнопкой по иконке «Компьютер» или «Этот Компьютер» на Рабочем столе или из меню «Пуск». Затем необходимо будет выбрать пункт контекстного меню «Подключить сетевой диск…».

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

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

В поле «Папка» необходимо будет ввести следующий адрес:

Https://webdav.yandex.ru

По умолчанию, будет активирован пункт «Восстанавливать при входе в систему».

После завершения выбора настроек нажмите на кнопку «Готово».

После успешного подключения сетевого диска, будет открыто окно «Безопасность Windows».

Здесь, в поле «Пользователь» вам нужно будет ввести логин от своей учетной записи в Яндекс.Диск. Так как логин привязан к почтовому ящику в Яндексе, то обратите внимание на то, что в этом случае, вам нужно будет вводить не полный адрес электронной почты, а только логин (то, что идет до «собаки»).

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

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

В окне Проводника, все сетевые диски, подключенные к вашему компьютеру, будут отображаться в области «Сетевое размещение».

Теперь вы можете пользоваться «облаком» Яндекса как обычным диском на своем компьютере.

Как отключить сетевой диск Яндекс WebDAV

Для отключения webdav yandex disk от компьютера, сначала вам нужно будет кликнуть по иконке «Компьютер» или «Этот компьютер», а затем в контекстном меню следует выбрать пункт «Отключить сетевой диск…».

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

После этого сетевой диск Яндекс.Диск будет отключен от вашего компьютера.

Выводы статьи

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

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

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

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

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

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

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

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

  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 . И настраиваете подключение.

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

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

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

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

В приятном общении с Яндекс Диском печалит только одно: маленький выделенный объем. Пусть даже есть возможность добавить места, но все равно мало.

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

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

При помощи CarotDAV также можно «перекидывать» файлы из одного хранилища (аккаунта) в другое.

Совет: скачайте Portable версию и запишите папку с программой на флешку. Эта версия подразумевает работу клиента без установки. Так образом Вы сможете получить доступ к своим хранилищам с любого компьютера. Кроме того, установленное приложение может отказаться запускать свою вторую копию.

Итак, с инструментами мы определились, теперь приступим к реализации. Запускаем клиент, переходим в меню «File» , «New Connection» и выбираем «WebDAV» .

В открывшемся окне присваиваем имя нашему новому подключению, вводим логин от аккаунта Яндекс и пароль.
В поле «URL» пишем адрес. Для Яндекс Диска он такой:
https://webdav.yandex.ru

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

Нажимаем «Ок» .

При необходимости создаем несколько подключений с разными данными (логин-пароль).

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

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

Работать с данными окнами можно, как с обычными папками: копировать файлы туда и обратно и удалять их. Управление происходит через встроенное контекстное меню клиента. Перетаскивание (drag-n-drop) также работает.

Подведем итог. Очевидный плюс данного решения – файлы хранятся в облаке и не занимают место на жестком диске. Также можно завести неограниченное количество Дисков.

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

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

Вот такой интересный способ подключить Яндекс Диск через WebDAV-клиент. Такое решение будет удобно тем, кто планирует работать с двумя и более облачными хранилищами.

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



Рекомендуем почитать

Наверх