Как создать Webdav сервер в пару кликов? • Android 1

Как создать Webdav сервер в пару кликов? • Android  1 Хостинг
  1. Как проверить, что хранилище подключено
  2. Alternatives to webdav
  3. Build software better, together
  4. Connect to a webdav server from mac os
  5. Distributed filesystems
  6. Filesystem modules
  7. How do i find my webdav server address?
  8. Personal data consents
  9. The web and webdav
  10. We need your approval in order to continue to your account
  11. Webdav clients
  12. Webdav faqs
  13. How do i find my webdav server address?
  14. Connect to a webdav server from windows
  15. Connect to a webdav server from linux
  16. Connect to a webdav server from mac os
  17. Webdav file-access apps
  18. Webdav servers
  19. Webdav servers and clients still going strong
  20. Webdav в far manager
  21. Where you’ll find webdav
  22. Why choose webdav?
  23. Wikis
  24. Автоматическое подключение сетевого диска
  25. Возможные проблемы и их решение
  26. Возможные решения
  27. Загрузка файла на сервер
  28. Копирование файлов по webdav
  29. Лимит на размер файла
  30. Ошибка 67 — не найдено сетевое имя
  31. Подключение webdav из командной строки windows
  32. Подключение сетевого диска webdav
  33. Подключение сетевого диска с проверкой и повтором
  34. Подключение дебетовой/кредитной карточки
  35. Проблемы с большими файлами
  36. Производительность wevdav хранилищ
  37. Регистрация у хостинг провайдера
  38. См. также
  39. Создание webdav
  40. Создание личного сервера
  41. Таймаут
  42. Удаление объекта
  43. Файлы для скачивания
  44. Итоги

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

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

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

Alternatives to webdav

WebDAV enables remote file editing and manipulation. There are many other mechanisms for working with files on a remote server; how is WebDAV different?

Build software better, together

This library implements a flexible, extensible, and quite standards-compliant WebDAV server built on ASP.NET. The WebDAV server can serve any type of hierarchical data, not only files. It supports transparent compression, partial transfers, partial updates, locking, editing, dead properties, strong typing of WebDAV properties, request preconditions, and other features. Setting up a simple WebDAV server to serve some files only requires adding some lines to your web.config file; no code needs to be written. If you want to serve another type of data over WebDAV, it is fairly easy to implement new service providers.

Connect to a webdav server from mac os

On a Mac, use the Finder tool to access the Connect to Server utility. Like the Windows network connection system, the Mac service requires the server name to have a schema and a subdomain and you should also put the path to your site’s WebDAV directory.

Distributed filesystems

There are multiple protocols for sharing remote filesystems across networks, whose most common use is to map/mount a network share exported by a server, permitting you to access folders and files on the remote server as if they were a local drive. SMB/CIFS is native to Windows; NFS is native to Unix/Linux; and for macOS the old default AFP is deprecated in favor of SMB.

These protocols provide essentially all the services of a filesystem on a local drive, including file locking, but not built-in file version tracking.

Distributed filesystem facilities often come with the operating system; if added later, they usually require additional modules added to the OS.

These protocols were developed to work over a LAN. Performance over the wide-area internet or a VPN will not be stellar, though you can mitigate that somewhat with tuning, and later versions of the protocols try to address this new use.

These protocols have much larger attack surfaces than simpler protocols like WebDAV. Though some recent versions like NFSv4 and SMB3 make improvements to support secure use on untrusted networks, most versions of these services are not secure beyond the LAN, and configuring them for such use is perilous.

Filesystem modules

Multiple operating systems include the option of using a low-level filesystem module that mounts or maps a connection to a WebDAV server as a drive or mount. These include the Microsoft WebDAV Redirector, macOS WebDAV file system, and Linux GNOME GVfs and KDE KIO.

Once the operating system has mapped/mounted the WebDAV server, the files and folders exposed via WebDAV appear to be local. They are accessed by the normal file access calls, and any local application accesses them unaware of their true location.

How do i find my webdav server address?

WebDAV doesn’t have a server address. When you set up a WebDAV connection, you are linking to a directory on your website. So, when you are asked for a server address, you need to enter the URL of your site. You will have the option of connecting to a specific folder on your web host.

Different WebDAV implementations have different requirements. Some WebDAV interfaces have a separate field for the directory name. This is the case with the implementation on Ubuntu Linux.

Personal data consents

In order to make your CloudMe experience possible, we store and process Personal Data. Read more on what we store here.

The web and webdav

The world-wide-web was intended to be a medium for consuming and producing content. But web-browsers almost immediately lost their ability to edit webpages, and read-only content ballooned to become the overwhelming norm.

WorldWideWeb (the original NeXT-based web-browser) showing many of its functions / public domain / by Tim Berners-Lee for CERN / Created: 13 December 1994
The earliest web-browsers supported editing webpages.

Collaborative editing of remote content is often needed, nevertheless, and so it’s reappeared on the web in multiple guises. WebDAV (Web Distributed Authoring and Versioning) is one mechanism. A webserver that supports WebDAV simultaneously works like a fileserver. That’s a powerful capability.

We need your approval in order to continue to your account

Your privacy is really important to us and we take the protection of all of your data very seriously. To further strengthen your privacy and rights to your data, the European Union, has passed the Regulation (EU) 2022/679 (General Data Protection Regulation — GDPR).

You can read more about your rights here.

In order for you to continue to use our service and keep your CloudMe account subscription, you need to provide us with the following consents. Failing to provide us with consent before 6 months after the 25th of May 2022 will result in your account being deleted. We will not send out reminders about gaining your consent as this will violate GDPR.

Webdav clients

As the Subversion documentation notes, WebDAV clients are standalone applications, extensions to file explorers or filesystem modules. Specifically, a WebDAV client may be one of the following.

Webdav faqs

How do i find my webdav server address?

WebDAV doesn’t have a server address. When you set up a WebDAV connection, you are linking to a directory on your website. So, when you are asked for a server address, you need to enter the URL of your site. You will have the option of connecting to a specific folder on your web host. This is a better strategy than just communicating with the root directory. Set up a folder on your host files system with a name like WebDAVFiles before attempting to connect from a client device.

Different WebDAV implementations have different requirements. Some WebDAV interfaces have a separate field for the directory name. This is the case with the implementation on Ubuntu Linux.

Connect to a webdav server from windows

When setting up a WebDAV connection through the Add Network Connection option in Windows, you need to give the full URL of your WebDAV folder on your website’s host. This should start with the schema, so you should have a server address that looks something like https://www.asite.com/WebDAVFiles

Connect to a webdav server from linux

In the Linux WebDAV implementation, the server address should be given as the website URL without a schema or subdomain on it. That is, asite.com not https://www.asite.com The directory name should be entered in a separate field.

Connect to a webdav server from mac os

On a Mac, use the Finder tool to access the Connect to Server utility. Like the Windows network connection system, the Mac service requires the server name to have a schema and a subdomain and you should also put the path to your site’s WebDAV directory.

industry-industry-4-network-points by Geralt, licensed under CC0.

WorldWideWeb (the original NeXT-based web-browser), c. 1993, Tim Berners-Lee for CERN – via Wikipedia.

Webdav file-access apps

Apps aimed at giving you access to remote files may be purely WebDAV oriented, like the Linux command-line tool cadaver, or the graphical DAV Explorer. Or they may be tools that speak multiple protocols, like WinSCP or Cyberduck.

WinSCP permits accessing files on a WebDAV server
Using WinSCP to browse remote files via WebDAV.

These let you download and upload files, manipulate folders, etc; the GUI ones provide drag-and-drop and related visual metaphors.

Webdav servers

A WebDAV server is always a web server, but it may be embedded in another system.

Webdav servers and clients still going strong

WebDAV is a long-standing protocol that enables a webserver to act as a fileserver and support collaborative authoring of content on the web. In many of its use cases, WebDAV is being supplanted by more modern mechanisms. But it’s still a reliable workhorse when the right servers and clients are matched, so it’s still encountered in many different applications.

Webdav в far manager

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

Where you’ll find webdav

WebDAV turns up in many different contexts, on the server or client-side.

One warning: many of these have had WebDAV support for quite a while. When WebDAV is not central to the particular package, the WebDAV functionality may not be maintained as well as it once was.

Why choose webdav?

Although there are alternatives to WebDAV and some of those are newer systems, none of the rival systems integrate all of the facilities of WebDAV. WebDAV’s key attributes are:

  • Operating system integration
  • Free to use
  • Close integration with web services
  • Version Control
  • Transport encryption
  • Remote access
  • Centralized storage
  • Version Control
  • File locking


When we are talking about collaboratively producing content on the web, wikis are an obvious example. Wikis are group-edited websites that serve as project knowledge bases, note-taking tools, community websites, etc.

Автоматическое подключение сетевого диска

Возможность для автоматического подключения сетевого диска при загрузке компьютера на самом деле уже есть и включается параметром /persistent:yes (см. выше).

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

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

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

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

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

Передо мной стояла задача подключиться и организовать работу с данными на двух файловых хранилищах: Яндекс.Диск и 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. Я уже подумал, что на этом исследования закончились… Но обнаружилось, что этот компонент ни в какую не коннектится к Яндексу (Яндекс.Диск был для меня более приоритетным сервисом, поэтому все тесты я в первую очередь проводил на нем).

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

Последняя операция, без которой наша утилита будет неполной, — это загрузка файла на удаленный хост. Это самая «хитрая» операция. Обсужденные выше операции не вызвали ни малейшего затруднения, но эта оказалась покруче! Я уже рассказывал, что с реализацией загрузки файла были трудности при использовании других средств разработки. И не все гладко было на 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";

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

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

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

Лимит на размер файла

Исходное значение 50 000 000 байт. Задается в байтах параметром реестра:

DWORD FileSizeLimitInBytes

в разделе:


Например, можно задать 500 000 000.

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

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

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

Подключение webdav из командной строки windows

Также можно использовать возможности командной строки – команда NET USE успешно подключает WebDAV хранилища, например, эта команда подключает папку Яндекс.Диск в виде логического диска Y:

Подключение сетевого диска webdav

Эта функция Windows позволяет получить доступ к файлам по WebDAV не только в файловых менеджерах (Far Manager и т.д.), но также и в командной строке и в проводнике Windows.

В Windows 7 есть встроенный веб клиент, который подключает облако WebDAV как обычный сетевой диск с присваиванием буквы. При подключении следует ввести адрес, который зависит от хранилища.

Строка подключения WebDAV для Яндекс.Диска:

Подключение сетевого диска с проверкой и повтором

Чтобы сделать более надёжное решение, использую cmd/bat файл с проверкой результата и повтором попытки:

Подключение дебетовой/кредитной карточки

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

Все данные вводим на английском языке.

Далее переходим к третьему этапу — выбор и создание сервера.

Проблемы с большими файлами

Операции (скачивания, закачивание) над небольшими файлами проходят отлично. Однако при большем размере файла (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 с отключением буферизации:

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

Копирование закончилось успешно, при том что не получилось ни проводником Windows, ни copy /y /z /v.

Производительность wevdav хранилищ

Это очень интересный вопрос для резервного копирования, потому что нам надо понимать, сколько времени будет занимать копирование файла резервной копии на сервер по webdav, ведь размер такого файла может быть и 100МБайт, и 1 ГБайт и больше.

Следующий тест показывает время выгрузки файла 188 МБ на Яндекс Диск по webdav. Подключение к интернету 100 Мбит/с, поэтому на выгрузку существенно не влияет. Для регистрации времени начала и окончания копирования используется программа nhts.

Регистрация у хостинг провайдера

Самые выгодные тарифы и стабильность/производительность у провайдера DigitalOcean. Переходим по данной ссылке ($10 в подарок) и регистрируемся:

Регистрация закончена, переходим ко второму этапу,подключение банковской карты.

См. также

WebDAV (Web Distributed Authoring and Versioning)

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

Как сделать задержку в командном файлеНесколько способов, как запрограммировать задержку по времени в bat файле CMD/BAT: варианты с фиксированным временем ожидания ping -n, sleep.exe из Windows XP Resource Kit и скрипт WSH/JScript, а также вариант с ожиданием нажатия клавиши timeout /t.

Создание webdav

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

Создание личного сервера

Теперь о том, как создать личный сервер (на данном сервере вы также можете создать сайт, либо личный облачный диск по типу Yandex Disk или DropBox), провайдер DigitalOcean называет их Droplet.

Нажмите на кнопку Create Droplet, после чего вы попадете на страницу создания конфигураций сервера:

Вы также можете узнать IP на основной странице управления Droplet.Устанавливаем и настраиваем 3proxy

Переходим к созданию из обычного сервера в VPN.


Исходное значение 1800 секунд или 30 минут, поэтому операции более 30 минут прерываются. Значение таймаута задается в секундах параметром реестра:

DWORD FsCtlRequestTimeoutInSec

в разделе:


В статье рекомендуется значение 3600, т.е. 3600 секунд или один час.

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

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

request.Method = "DELETE";

Файлы для скачивания

Командные файлы подключения по WebDAV

Все скрипты и командные файлы


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

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

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

Оцените статью