- Доступ к облаку по webdav
- WebDAV в FAR Manager
- Подключение сетевого диска WebDAV
- Подключение WebDAV из командной строки Windows
- Проблемы с большими файлами
- Лимит на размер файла
- Таймаут
- Производительность wevdav хранилищ
- Возможные проблемы и их решение
- Ошибка 67 — не найдено сетевое имя
- Ошибка 1244 — пользователь не зарегистрирован
- Действия с хранилищем в командном файле
- Как проверить, что хранилище подключено
- Копирование файлов по WebDAV
- Автоматическое подключение сетевого диска
- Подключение сетевого диска с проверкой и повтором
- Файлы для скачивания
- См. также
- Установка и настройка WebDAV на IIS в Windows 7 и Windows 2008 (доступ к файлам через интернет)
- Установка WebDAV на IIS 7.5 в Windows Server 2008 R2
- Установка WebDAV на IIS 7.5 в Windows 7
- Настраиваем публикацию WebDAV в Диспетчер служб IIS
Доступ к облаку по webdav
Облачные хранилища данных становятся всё более востребованными, как среди частных пользователей, так и среди компаний. При этом некоторые интернет сервисы хранения файлов предоставляют возможность доступа к своему облаку по протоколу WebDAV (Web Distributed Authoring and Versioning).
Преимущества доступа по webdav по сравнению с веб доступом:
- работа с файлами в автоматическом режиме (скачивание/закачивание bat файлами и скриптами JS/VBS/PS), то есть, в первую очередь, это означает возможность автоматического сброса резервных копий на интернет хранилище
- подключение облака как сетевого диска (обычного network drive) с присваиванием буквы логического диска (E:, F: и т.д.), другими словами, возможность работы с облачными файлами из обычных программ (офисные пакеты, графические редакторы и т.п.)
- возможность заливать большие файлы (обычно веб интерфейс позволяет закачивать в хранилище файлы до 2 ГБ). Здесь надо отметить, что бесплатные аккаунты часто ограничены в размере файлов по сравнению с платными, например, на Box бесплатно можно хранить файлы размером не более 250 МБ (на Business аккаунтах размер файла может составлять до 5 ГБ, на Enterprise вроде до 15 ГБ); правда, с большими файлами есть и другие проблемы, но об этом ниже
Статья расскажет о возможностях использования WebDAV в различных программах, особенностях подключения вручную и из командной строки/bat файлов, распространенных проблемах и их решениях.
WebDAV в FAR Manager
Работать с файловым хранилищем по WebDAV можно и без подключения сетевого диска, если использовать плагин NetBox в Far Manager, при этом файлы будут доступны в самом Far Manager, но недоступны в командной строке и в других программах, например, в проводнике Windows.
Подключение сетевого диска WebDAV
Эта функция Windows позволяет получить доступ к файлам по WebDAV не только в файловых менеджерах (Far Manager и т.д.), но также и в командной строке и в проводнике Windows.
В Windows 7 есть встроенный веб клиент, который подключает облако WebDAV как обычный сетевой диск с присваиванием буквы. При подключении следует ввести адрес, который зависит от хранилища.
Строка подключения WebDAV для Яндекс.Диска:
Строка подключения WebDAV для Box:
Подробные инструкции с картинками: Does Box support WebDAV?
Строка подключения WebDAV для OneDrive потребует cid – это идентификатор учетной записи, его можно посмотреть в адресной строке браузера, если открыть веб-интерфейс OneDrive:
Облако Mail.ru тоже предлагает доступ по WebDAV, хотя и только на платных тарифах.
Строка подключения WebDAV для Mail.ru:
Подключение WebDAV из командной строки Windows
Также можно использовать возможности командной строки – команда NET USE успешно подключает WebDAV хранилища, например, эта команда подключает папку Яндекс.Диск в виде логического диска Y:
Эта команда для подключения папки Box в виде логического диска X:
Чтобы подключить OneDrive к букве O: (значение cid берётся из адресной строки браузера в веб-итерфейсе OneDrive:
Чтобы подключить OneDrive к назначаемой автоматически букве диска:
Хотя можно выбрать автоматический выбор буквы диска (указанием звёздочки), я предпочитаю использовать фиксированные буквы — это упрощает работу с командными файлами.
Примечание: параметр /persistent:yes необязательный, он задаёт автоматическое восстановление подключения при перезагрузке компьютера, подробнее об этом см. ниже.
После подключения можно пользоваться стандартными командами для работы с файлами, например:
Проблемы с большими файлами
Операции (скачивания, закачивание) над небольшими файлами проходят отлично. Однако при большем размере файла (50 МБ и более) возникают проблемы. Например, появляется сообщение Delayed Write Failed (Ошибка отложенной записи), а размер закачанного файла оказывается 0 байт.
Для решения этих проблем можно попробовать изменить параметры клиента, как это описано ниже, подробнее см. в статье You cannot download more than 50 MB or upload large Files when the upload takes longer than 30 minutes using Web Client in Windows 7
Но в действительности получилось закачать файл 300 МБ только командой xcopy с отключением буферизации:
Копирование закончилось успешно, при том что не получилось ни проводником Windows, ни copy /y /z /v.
Лимит на размер файла
Исходное значение 50 000 000 байт. Задается в байтах параметром реестра:
Например, можно задать 500 000 000.
Таймаут
Исходное значение 1800 секунд или 30 минут, поэтому операции более 30 минут прерываются. Значение таймаута задается в секундах параметром реестра:
В статье рекомендуется значение 3600, т.е. 3600 секунд или один час.
Производительность wevdav хранилищ
Это очень интересный вопрос для резервного копирования, потому что нам надо понимать, сколько времени будет занимать копирование файла резервной копии на сервер по webdav, ведь размер такого файла может быть и 100МБайт, и 1 ГБайт и больше.
Следующий тест показывает время выгрузки файла 188 МБ на Яндекс Диск по webdav. Подключение к интернету 100 Мбит/с, поэтому на выгрузку существенно не влияет. Для регистрации времени начала и окончания копирования используется программа nhts.
В итоге, файл 188 МБ был скопирован за 38 секунд, то есть скорость выгрузки составила 4,9 МБ/с или 40Мбит/с – хороший результат для резервного копирования. Соответственно, файл 1 ГБ будет загружен на сервер примерно за 3,5 минуты.
Теперь такой же тест для Box (он подключен к X:):
Box работает помедленнее – время копирования того же файла составило 112 секунд, и, соответственно, скорость копирования составила 1,7 МБ/с или 13,4 Мбит/с. При такой скорости время копирования 1ГБ файла составит больше 10 минут. Сам Box пишет, что для business и enterprise аккаунтов есть какая-то оптимизация для повышения скорости копирования на сервер, см. How can I optimize my upload speeds?
Понятно, что скорость копирования может меняться в зависимости от загрузки каналов связи или серверов, но видно, что Яндес Диск быстрее, и с учетом ограничения на размер файла в 250 МБ в Box предпочтительнее для резервного копирования использовать бесплатный Яндекс Диск, чем бесплатный аккаунт Box.
Возможные проблемы и их решение
При появлении проблемы подключения важно определить, какую именно ошибку сообщает программа – чтобы делать правильные действия для её устранения.
Ошибка 67 — не найдено сетевое имя
Ошибка 67 означает, что не удалось найти сервер по указанному в команде сетевому имени. В английской версии Windows эта ошибка описывается как «The network name cannot be found».
В первую очередь необходимо проверить, правильно ли в команде набран протокол и адрес webdav сервера, например, для Яндекс.Диска должно быть:
Во-вторых, проверить разрешение сетевого имени – сервер должен быть доступен:
Если сервер неизвестен или не отвечает, то явно что-то не так с интернет подключением.
Если сетевое имя сервера указано корректно, сервер успешно пингуется, но подключение с правильными параметрами всегда завершается ошибкой 67, то причиной проблемы является блокировка подключения со стороны локальной сети. Например, у меня на работе происходит именно так, потому что доступ к интернет хранилищам по WebDav заблокирован администраторами намеренно, наверное, чтобы предотвратить слив информации на сторону. Чтобы убедиться, что причина именно в этом, необходимо попробовать подключение с точно такими же параметрами, но из другой сети, лучше из домашней, потому что операторы обычно не блокируют WebDAV коммуникации. Если проверка подтвердила, что локальные админы блокируют подключение, то решить проблему можно только через них.
Ошибка 1244 — пользователь не зарегистрирован
Полный текст ошибки: «Запрошенная операция не была выполнена, так как пользователь не зарегистрирован».
Эта ошибка означает, что сервер не получил правильные логин и пароль пользователя. Причины могут быть разные, как неправильный ввод имени или пароля, так и ввод их в неправильном месте команды.
Поэтому при этой ошибке я проверяю, что пароль введён правильно и находится между адресом сервера и параметром /user .
Также сложность может возникнуть, если пароль содержит спецсимволы, имеющие особое значение в командных cmd/bat файлах, потому что эта часть строки может быть интерпретирована неправильно. Чтобы это проверить, можно попробовать временно указать звёздочку вместо пароля, тогда программа запросит пароль после запуска. Если подключение при вводе пароля по запросу сработает, то надо проверить пароль на наличие недопустимых символов. Например, у меня один из паролей содержал символ амперсанда ‘&’, и это приводило к ошибке 1244. Обойти ошибку удалось, заключив пароль в кавычки. Но если в пароле есть символ кавычек, то это обойти, скорее всего, не удастся – лучше изменить пароль, исключив из него кавычки.
Действия с хранилищем в командном файле
Как проверить, что хранилище подключено
Проверка того, что подключение установлено, и сервер доступен, может потребоваться в командных файлах. Её можно выполнить командой IF EXIST.
Например, cmd/bat файл для подключения WebDAV проверяет, если диск уже подключен, то сразу выходит:
Или cmd/bat файл резервного копирования проверяет перед выгрузкой, что сетевой диск доступен:
Копирование файлов по WebDAV
Из-за буферизации на стороне клиента в стандартной COPY или в проводнике возможна потеря данных, поэтому рекомендуется использовать XCOPY с отключением буферизации и с контролем размера.
Автоматическое подключение сетевого диска
Возможность для автоматического подключения сетевого диска при загрузке компьютера на самом деле уже есть и включается параметром /persistent:yes (см. выше).
Недостаток этого решения состоит в том, что при загрузке компьютера делается только одна попытка подключения диска. Если на этот момент не было сетевого подключения или временно сервер был недоступен, то диск так и останется не подключенным.
Та же проблема возникает, если в автозагрузку вставить только команду подключения:
Подключение сетевого диска с проверкой и повтором
Чтобы сделать более надёжное решение, использую cmd/bat файл с проверкой результата и повтором попытки:
В случае ошибки NET USE попытка подключения повторяется через 1 минуту. Задержка делается с помощью ping, подробнее см. Как сделать задержку в командном файле.
Этот командный файл можно запускать вручную или через автозагрузку.
Чтобы не мешало чёрное окно bat файла, можно спрятать его путём запуска через wsh скрипт, см. Скрыть консольное окно.
Файлы для скачивания
См. также
Клиенты облачных хранилищ как альтернатива WebDAV
Клиентские программы облачных дисков предлагают возможность работы с удаленными файлами без хранения их на компьютере.
Установка и настройка WebDAV на IIS в Windows 7 и Windows 2008 (доступ к файлам через интернет)
Существует надстройка над службой Internet Information Services (IIS) под названием WebDAV. WebDAV – это протокол для доступа к общим файлам и папкам через интернет, частично похож на FTP. Передача файлов по протоколу WebDAV осуществляется через разные межсетевые экраны и брандмауэры, информацию можно шифровать. При этом, работа с файлами и папками очень удобна и напоминает работу службы доступа к файлам и папкам в Windows.
Вместе с выходом Windows Server 2008 Microsoft была обновлена версия модуля WebDAV для IIS 7. Этот модуль расширяет возможности, увеличивает удобство и безопасность использования WebDAV для доступа к файлам в Интернет. И еще, теперь он поддерживает работу многих пользователей и блокировку файлов.
Далее разберемся, как установить и настроить WebDAV на ОС Windows 7 и Windows Server 2008 R2, и потом – как получить доступ к файлам и папкам, которым открыт общий сетевой доступ по WebDAV.
Не забудьте, что WebDAV это расширение службы IIS, поэтому, если у вас не установлен IIS, сделайте это (и в Windows 7, и в Windows Server 2008 R2, IIS идет по умолчанию, но в целях безопасности этот компонент нужно включать отдельно). Установка WebDAV в Windows 7 и в Windows 2008 R2 несколько отличается.
Установка WebDAV на IIS 7.5 в Windows Server 2008 R2
- Откройте меню Start-> Administrative Tools-> Server Manager (Панель управления\Система и безопасность\Администрирование).
- В окне управления сервером выберите Roles и отметьте Web Server (IIS).
- В окне Web Server (IIS), найдите секцию Role Services и добавьте новую роль Add Role Services.
- В списке служб разверните элемент Common HTTP Features, выберите опциюWebDAV Publishing (Веб-публикация DAV) и нажмите Next (Далее).
- Затем нажмите Install (Установить).
- После установки расширения WebDAV, закройте окно установки кнопкой Close.
Установка WebDAV на IIS 7.5 в Windows 7
- Перейдите в панель управления.
- Там откройте элемент Programs and Features, и перейдите в режим установки функций Windows (Turn Windows Features on or off).
- Разверните узел Internet Information Services, затем World Wide Web Services, и Common HTTP Features.
- Отметьте WebDAV Publishing и нажмите OK.
Настраиваем публикацию WebDAV в Диспетчер служб IIS
На этом этапе мы включим WebDAV для сайта IIS и дадим права на редактирование содержимого локальному администратору.
- В менеджере IIS Manager, разверните дерево сайтов и выберите Default Web Site (SERVER\сайты\Default Web Site).
- Щелкните по элементу (как на картинке) WebDAV Authoring Rules (Правила Разработки WebDAV).
- На странице WebDAV Authoring Rules щелкните в правой колонке(Actions / Действия) по сслыке Enable WebDAV (Включить WebDAV)
- После включения WebDAV, создаем правила доступа к содержимому, нажав кнопкуAdd Authoring Rule (Добавить правило разработки).
- В окне Add Authoring Rule (Добавить правило разработки) укажем:
- All content (Все содержимое) – что значит – правило будет применяться для контента всех типов.
- Выберите «Specified users» (указанные пользователи) и введите имя пользователя «administrator»
- Права доступа: Read, Source и Write (Чтение, Источник, Запись).
- После настройки, нажмите OK.
- В панели управления IIS выберите опцию Authentication (Проверка подлинности).
- В окне аутентификации активируйте аутентификацию Windows (Windows Authentication), если IIS будет работать только как сервер WebDAV, анонимную аутентификацию можно отключить.
- Вернитесь на уровень сайта Default Web Site и выберите Authorization Rules (Правило авторизации .NET) либо .Net Authorization Rules
- Создайте Allow (разрешить) правило (или убедитесь, что оно уже есть), в котором администратору будет разрешен доступ к серверу (если такое правило уже есть, то всем пользователям — All Users, в том числе администратору, разрешен доступ к IIS).
- Теперь подключимся к сайту WebDAV c учетной записью администратора, в командной строке набираем:
net use * http://localhost/
В результате, в системе появится новый сетевой диск, подключенный с сервера с помощью WebDAV.
К сведению: Если при попытке подключить каталог по WebDav появляется ошибка «System error 67 has occurred. The network name cannot be found.«, в Windows 8 /Windows Server 2012 установите компонент Desktop Experience и проверьте, запущена ли службаWeb Client.
Чтобы расшарить конкретную папку на диске, надо создать виртуальный каталог IIS. Для этого щелкните правой кнопкой мыши по сайту и выберите ‘Add New Virtual Directory’:
Укажите алиас (имя виртуального каталога IIS) и путь к папке, к которой необходимо открыть доступ, и нажмите OK.
Чтобы подключить данный каталог, надо воспользоваться командой:
net use * https://ithelpblog.pro/projects
Сетевой диск, подключенный по WebDAV выглядит так:
Как видите, WebDAV — это хорошее средство для удаленного доступа к файлам и папкам в Windows поверх протокола HTTP, которое можно использовать, даже через межсетевой экран. Кроме того, так как WebDAV базируется на службе IIS, это означает, что можно использовать разные технологии обеспечения безопасности и средства управления IIS, в том числе HTTPS для шифрования передаваемых данных (при использовании обычного HTTP вся информация передается в открытом виде, кроме пароля, который, при использовании Windows Authentication, шифруется).
Несколько нюансов использования WebDAV:
- Если вы используете Basic authentication вместе с HTTP, это означает, что Ваш пароль будет пересылаться в открытом виде, поэтому лучше использовать протокол HTTPS, или включить аутентификацию Windows.
- Не забудьте, что IIS работает под учетной записью, у которой нет доступа к большинству каталогов и файлам, поэтому надо вручную назначить NTFS права этой учетной записи.
- Для того, чтобы подключить диск по WebDAV от клиента Windows XP, надо убедится, что запущена служба WebClient
- Чтобы подключить каталог WebDAV по HTTPS, пользуйтесь командой:
- net use x: «https://ithelpblog.pro/projects » /User:UserName Password