Доступ к облаку по webdav

Возможные проблемы и их решение

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

Ошибка 67 — не найдено сетевое имя

Ошибка 67 означает, что не удалось найти сервер по указанному в команде сетевому имени. В английской версии Windows эта ошибка описывается как «The network name cannot be found».

В первую очередь необходимо проверить, правильно ли в команде набран протокол и адрес webdav сервера, например, для Яндекс.Диска должно быть:

https://webdav.yandex.ru

Во-вторых, проверить разрешение сетевого имени – сервер должен быть доступен:

C:WindowsSystem32>ping webdav.yandex.ru  Pinging webdav.YANDEX.ru [87.250.251.53] with 32 bytes of data: Reply from 87.250.251.53: bytes=32 time=46ms TTL=51 Reply from 87.250.251.53: bytes=32 time=35ms TTL=51 Reply from 87.250.251.53: bytes=32 time=62ms TTL=51 Reply from 87.250.251.53: bytes=32 time=38ms TTL=51  Ping statistics for 87.250.251.53:     Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds:     Minimum = 35ms, Maximum = 62ms, Average = 45ms

Если сервер неизвестен или не отвечает, то явно что-то не так с интернет подключением.

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

Ошибка 1244 — пользователь не зарегистрирован

Поэтому при этой ошибке я проверяю, что пароль введён правильно и находится между адресом сервера и параметром /user.

Также сложность может возникнуть, если пароль содержит спецсимволы, имеющие особое значение в командных cmd/bat файлах, потому что эта часть строки может быть интерпретирована неправильно. Чтобы это проверить, можно попробовать временно указать звёздочку вместо пароля, тогда программа запросит пароль после запуска. Если подключение при вводе пароля по запросу сработает, то надо проверить пароль на наличие недопустимых символов. Например, у меня один из паролей содержал символ амперсанда ‘&’, и это приводило к ошибке 1244. Обойти ошибку удалось, заключив пароль в кавычки. Но если в пароле есть символ кавычек, то это обойти, скорее всего, не удастся – лучше изменить пароль, исключив из него кавычки.

Действия с хранилищем в командном файле

Как проверить, что хранилище подключено

Проверка того, что подключение установлено, и сервер доступен, может потребоваться в командных файлах. Её можно выполнить командой IF EXIST.

Например, cmd/bat файл для подключения WebDAV проверяет, если диск уже подключен, то сразу выходит:

if exist Y:* echo Already connected. & exit /b 0

Или cmd/bat файл резервного копирования проверяет перед выгрузкой, что сетевой диск доступен:

if not exist Y:* echo Not connected. & exit /b 1

Копирование файлов по WebDAV

Из-за буферизации на стороне клиента в стандартной COPY или в проводнике возможна потеря данных, поэтому рекомендуется использовать XCOPY с отключением буферизации и с контролем размера.

xcopy *.zip y:backup /Y /Z /V /J

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Добавить комментарий