Доступ к файлам Nextcloud по протоколу WebDAV

Программа Nextcloud полностью совместима с протоколом WebDAV, благодаря чему вы можете установить соединение и синхронизировать ваши файлы Nextcloud по протоколу WebDAV. В данном разделе приведена информация о том, как подключить устройства под управлением ОС Linux, macOS, Windows, а также мобильные устройства к вашему серверу Nextcloud через протокол WebDAV. Перед описанием процесса настройки WebDAV необходимо рассмотреть рекомендованный способ подключения клиентских устройств к серверам Nextcloud.

Примечание: в следующих примерах нужно поменять текст «example.com/» на URL-адрес вашего сервера Nextcloud, а «Имя_пользователя» (USERNAME) на идентификатор пользователя, для которого создается соединение.

URL-адрес для протокола webdav можно узнать в Nextcloud (настройки в нижнем левом углу).

Клиенты для настольных ПК и мобильных устройств в Nextcloud

Для синхронизации настольного ПК с сервером Nextcloud рекомендуется использовать клиенты синхронизации Nextcloud/ownCloud. Вы можете настроить клиент таким образом, чтобы файлы сохранялись в локальную директорию, и можете указать директории на сервере Nextcloud, с которыми будет выполняться синхронизация. В клиенте отображается текущее состояние соединения и регистрируются все действия, чтобы вы знали, какие удаленные файлы были загружены на ваш ПК, и могли проверить, какие файлы на вашем локальном компьютере были созданы, обновлены и синхронизированы с сервером.

Для синхронизации сервера Nextcloud с устройствами под управлением ОС Android и Apple iOS рекомендуется использовать соответствующие мобильные приложения.

Для подключения вашего мобильного приложения к серверу Nextcloud нужно использовать только базовый URL-адрес и папку:

example.com/nextcloud

Кроме мобильных приложений в Nextcloud или ownCloud, можно использовать другие приложения для подключения к Nextcloud с вашего мобильного устройства по протоколу WebDAV. Для устройств под управлением ОС Android и смартфонов IPhone отличным вариантом является запатентованное приложение WebDAV Navigator. В данном случае используется следующий URL-адрес:

example.com/nextcloud/remote.php/dav/files/USERNAME/

Конфигурация WebDAV

При необходимости вы можете также подключить настольный ПК к серверу Nextcloud, используя протокол WebDAV вместо специального клиентского приложения. Web Distributed Authoring and Versioning (WebDAV) – расширение к протоколу переноса гипертекста (HTTP), которое упрощает процесс создания, чтения и редактирования файлов на веб-серверах. С помощью протокола WebDAV вы можете получить доступ к общим данным Nextcloud через устройства под управлением ОС Linux, macOS и Windows так же, как к удаленному общему сетевому файлу, и выполнить их синхронизацию.

Доступ к файлам на устройствах под управлением ОС Linux

Доступ к файлам на устройствах под управлением операционных систем Linux осуществляется следующим образом.

Файловый менеджер Nautilus

Используйте команду davs:// для подключения файлового менеджера Nautilus к нужному общему файлу Nextcloud:

davs://example.com/nextcloud/remote.php/dav/files/USERNAME/

Примечание: если соединение с сервером не использует протокол HTTPS, следует ввести команду dav://, а не davs://.

Доступ к файлам при помощи среды KDE и файлового менеджера Dolphin

Для доступа к файлам Nextcloud при помощи файлового менеджера Dolphin в среде KDE нужно использовать команду webdav://:

webdav://example.com/nextcloud/remote.php/dav/files/USERNAME/

Вы можете создать постоянную ссылку на ваш сервер Nextcloud:

  1. Запустите менеджер Dolphin и нажмите кнопку «Сеть» (Network) в левой области «Места» (Places).
  2. Щелкните по значку «Добавить сетевую папку» (Add a Network Folder). В открывшемся диалоговом окне отобразится выбранный протокол WebDAV.
  3. Если это не так, следует выбрать данный протокол.
  4. Нажмите кнопку «Далее» (Next).
  5. Введите следующие настройки:
    • Имя (Name): имя, которое должно отображаться для закладки «Места» (Places), например, Nextcloud.
    • Пользователь (User): имя пользователя Nextcloud, используемое для входа в систему, например, «администратор» (admin).
    • Сервер (Server): имя домена Nextcloud, например, example.com (без http:// в начале и без директорий в конце).
    • Папка (Folder): введите путь: nextcloud/remote.php/dav/files/USERNAME/.
  6. (Опция) установите галочку «Добавить позицию списка» (Create icon checkbox) для закладки, отображаемой в области «Места» (Places).
  7. (Опция) введите специальные настройки или включите использование SSL-сертификата в строке «Порт и шифрование» (Port & Encrypted).

Создание точки монтирования WebDAV в командной строке Linux

Вы можете создать точки монтирования WebDAV с помощью командной строки Linux. Это может потребоваться в тех случаях, когда вы хотите получить доступ к Nextcloud так же, как к любой другой удаленной точке монтирования файловой системы. Ниже показано, как создать персональную точку монтирования, которая будет автоматически монтироваться при каждом входе в систему на вашем компьютере под управлением ОС Linux.

  1. Установите драйвер файловой системы davfs2 для WebDAV, который позволяет монтировать общие файлы WebDAV, как любую другую удаленную файловую систему. Введите следующую команду для его установки на ОС Debian/Ubuntu:

    apt-get install davfs2

  2. Введите следующую команду для его установки в ОС CentOS, Fedora и openSUSE:

    yum install davfs2

  3. Добавьтесь в группу davfs2:

    usermod -aG davfs2 <имя_пользователя>

  4. Затем создайте директорию «nextcloud» в исходной директории для точки монтирования, и директорию «.davfs2/» для вашего файла конфигурации:

    mkdir ~/nextcloud

    mkdir ~/.davfs2

  5. Скопируйте файл /etc/davfs2/secrets в директорию ~/.davfs2:

    cp /etc/davfs2/secrets ~/.davfs2/secrets

  6. Укажите себя в качестве владельца и установите права на чтение-запись только для владельца:

    chown <имя_пользователя_linux >:<имя_пользователя_linux> ~/.davfs2/secrets

    chmod 600 ~/.davfs2/secrets

  7. Добавьте ваши учетные данные Nextcloud в конец файла secrets, используя URL-адрес сервера Nextcloud и ваши имя пользователя и пароль в Nextcloud:

    https://example.com/nextcloud/remote.php/dav/files/USERNAME/ <имя_пользователя> <пароль>

    или

    $PathToMountPoint $USERNAME $PASSWORD

    Например,

    /home/user/nextcloud john 1234

  8. Добавьте информацию для монтирования по адресу: /etc/fstab:

    https://example.com/nextcloud/remote.php/dav/files/USERNAME/ /home/<имя_пользователя_linux>/nextcloud

    davfs user,rw,auto 0 0

  9. Проверьте, монтируется и проходит ли данная точка проверку идентификации, при помощи следующей команды. При правильной настройке не нужны права суперпользователя root:

    mount ~/nextcloud

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

    umount ~/nextcloud

После этого при каждом входе в систему Linux ваш общий файл Nextcloud должен автоматически монтироваться через WebDAV в директории «~/nextcloud». Для выполнения монтирования вручную в файле «/etc/fstab» нужно заменить текст «автоматически» (auto) на «не автоматически» (noauto).

Известные проблемы

Проблема

Ресурс временно недоступен.

Решение

При возникновении проблем во время создания файла в директории нужно отредактировать файл /etc/davfs2/davfs2.conf и добавить строку:

use_locks 0

Проблема

Предупреждения, касающиеся сертификата.

Решение

При использовании самоподписанного сертификата будет выдаваться предупреждение. Во избежание возникновения данной ситуации нужно настроить драйвер davfs2 так, чтобы он распознавал сертификат. Скопируйте файл mycertificate.pem в директорию /etc/davfs2/certs/. Затем откройте файл /etc/davfs2/davfs2.conf и раскомментируйте строку servercert. После этого добавьте путь к вашему сертификату, как указано в примере:

servercert /etc/davfs2/certs/mycertificate.pem

Доступ к файлам на устройствах под управлением ОС macOS

Примечание: программа Finder в ОС macOS имеет ряд проблем с реализацией и должна использоваться только в тех случаях, когда сервер Nextcloud использует Apache и mod_php или Nginx 1.3.8+. К альтернативным клиентам для ОС macOS, позволяющим получить доступ к общим файлам WebDAV, можно отнести приложения с открытым кодом Cyberduck (см. инструкции по ссылке) и Filezilla. Платными клиентами являются Mountain Duck, Forklift, Transmit и Commander One.

Для получения доступа к файлам через Finder в ОС macOS нужно выполнить следующее:

  1. В верхней панели меню программы Finder выберите пункты «Переход» (Go) > «Подключение к серверу…» (Connect to Server...).
  2. После открытия окна «Подключение к серверу…» (Connect to Server...) введите адрес WebDAV для вашего сервера Nextcloud в поле «Адрес сервера:» (Server Address:), например:

    https://cloud.YOURDOMAIN.com/remote.php/dav/files/USERNAME/

  3. Нажмите кнопку «Подключиться» (Connect). На настольном ПК сервер WebDAV отобразится как общий диск.

Доступ к файлам на устройствах под управлением ОС Microsoft Windows

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

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

Примечание: перед подключением диска нужно разблокировать базовую аутентификацию в системном реестре ОС Windows. Данная процедура описана в статье базы знаний KB841215, причем процедуры для ОС Windows XP/Server 2003 и ОС Windows Vista/7 различаются. Перед началом работы нужно прочитать данную статью в базе знаний (при наличии ОС Windows 7 нужно выполнять инструкции для ОС Vista).

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

В следующем примере рассмотрен способ подключения диска при помощи командной строки. Для этого требуется выполнить следующие действия:

  1. Открыть консоль командной строки в ОС Windows.
  2. Ввести следующий текст в консоль командной строки, чтобы выполнить подключение к диску Z:

    net use Z: https://<путь_к_диску>/remote.php/dav/files/USERNAME/ /user:youruser yourpassword

    где <путь_к_диску> – URL-адрес сервера Nextcloud.

    Пример:

    net use Z: https://example.com/nextcloud/remote.php/dav/files/USERNAME/ /user:youruser yourpassword

    Компьютер подключит файлы с сервера Nextcloud к диску Z.

Примечание: хотя это не рекомендуется делать, вы можете также монтировать сервер Nextcloud при помощи HTTP, оставив соединение незащищенным. Если вы собираетесь использовать HTTP-соединения на устройствах в общественных местах, настоятельно рекомендуется использовать VPN-туннель для обеспечения достаточного уровня безопасности.

Альтернативный синтаксис команды:

net use Z: \\example.com@ssl\nextcloud\remote.php\dav /user:youruser yourpassword

Подключение дисков при помощи диспетчера Windows Explorer

Для подключения дисков при помощи диспетчера Microsoft Windows Explorer требуется выполнить следующие действия:

  1. Перейдите на ваш компьютер в диспетчере Windows Explorer.
  2. Щелкните правой кнопкой мыши по значку «Компьютер» (Computer) и выберите пункт «Подключить сетевой диск…» (Map network drive...) в выпадающем меню.
  3. Выберите локальный сетевой диск, к которому нужно подключить сервер Nextcloud.
  4. Укажите адрес вашего экземпляра Nextcloud, а затем введите текст «/remote.php/dav/files/USERNAME/».

    Пример:

    https://example.com/nextcloud/remote.php/dav/files/USERNAME/

Примечание: что касается серверов с защитой при помощи SSL-сертификата, нужно установить флажок «Восстанавливать при входе в систему» (Reconnect at logon), чтобы подключение восстанавливалось после каждой последующей перегрузки. Для подключения к серверу Nextcloud в качестве другого пользователя нужно установить флажок «Использовать другие учетные записи» (Connect using different credentials).

  1. Нажмите кнопку «Готово» (Finish).

    Диспетчер в ОС Windows подключит сетевой диск, после чего вы получите доступ к своему экземпляру Nextcloud.

Доступ к файлам при помощи Cyberduck

Cyberduck – это веб-обозреватель с открытым кодом для FTP, SFTP, WebDAV, OpenStack Swift и Amazon S3, предназначенный для передачи файлов в ОС macOS и Windows.

Примечание: в данном примере рассмотрена программа Cyberduck версии 4.2.1.

Порядок работы с Cyberduck:

  1. Укажите сервер без информации об используемом протоколе. Например:
    example.com
  2. Укажите порт. Выбранный порт зависит от того, поддерживает ли ваш сервер Nextcloud SSL-сертификат. Для использования SSL-сертификата в Cyberduck нужно выбрать другой тип соединения. Например:
    • 80 (для WebDAV)
    • 443 (для WebDAV (HTTPS/SSL))
  3. С помощью выпадающего меню «Дополнительно» (More Options) можно добавить остальные URL-адреса WebDAV, используя поле «Путь» (Path). Например:
    remote.php/dav/files/USERNAME/

После этого Cyberduck можно будет использовать для доступа к серверу Nextcloud.

Доступ к опубликованным общим данным по протоколу WebDAV

Nextcloud позволяет получить доступ к опубликованным общим данным по протоколу WebDAV.

Для этого необходимо ввести команду:

https://example.com/nextcloud/public.php/webdav

В качестве имени пользователя в клиенте WebDAV следует использовать маркер для общего доступа, а в качестве пароля – пароль для общего доступа (дополнительно).

Примечание: для использования данной функции нужно последовательно выбрать пункты: Настройки (Settings) → Администрирование (Administration) → Общий доступ (Sharing) → Разрешить пользователям на данном сервере отправлять общие файлы на другие сервера (Allow users on this server to send shares to other servers)

Известные проблемы

Проблема

ОС Windows не устанавливает соединение через HTTPS.

Решение 1

Клиент WebDAV для ОС Windows может не поддерживать функцию указания имени сервера (SNI) для зашифрованных соединений. В случае возникновения данной ошибки при монтировании экземпляра Nextcloud с защитой при помощи SSL-сертификата обратитесь к провайдеру, чтобы он сообщил вам выделенный IP-адрес для вашего сервера.

Решение 2

Клиент WebDAV для ОС Windows может не поддерживать соединения TSLv1.1/TSLv1.2. Если вы указали, что ваш сервер может использовать только TLSv1.1 и новее, соединение может не устанавливаться. См. дополнительную информацию в документации к WinHTTP.

Проблема

Появляется следующая ошибка: «Ошибка 0x800700DF: Размер файла превышает установленное ограничение, сохранение файла невозможно» (Error 0x800700DF: The file size exceeds the limit allowed and cannot be saved).

Решение

Windows ограничивает максимальный размер файла, передаваемого из WebDAV или в него. Вы можете увеличить предельный размер файла в байтах (FileSizeLimitInBytes) в строке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters, выбрав пункт «Изменить» (Modify).

Для настройки максимального значения, равного 4 Гб, нужно выбрать пункт «Десятичное значение» (Decimal), ввести значение «4294967295» и перезагрузить ОС Windows или перезапустить службу «Веб-клиент».

Проблема

Невозможен доступ к вашим файлам из пакета программ Microsoft Office по протоколу WebDAV.

Решение

Известные проблемы и их решения указаны в статье из базы знаний KB2123563.

Проблема

Не удается подключить Nextcloud в качестве диска WebDAV в ОС Windows, используя самоподписанный сертификат.

Решение

  1. Запустите экземпляр Nextcloud при помощи веб-обозревателя.
  2. Щелкните левой кнопкой мыши до появления ошибки сертификата в строке состояния веб-обозревателя.
  3. Просмотрите сертификат, а затем выберите пункт «Копировать в файл» (Copy to File) на вкладке «Подробно» (Details).
  4. Сохраните файл на рабочий стол под понятным именем, например, myNextcloud.pem.
  5. Выберите пункты: «Пуск» (Start), «Run» (Выполнить), «Консоль управления Microsoft» (MMC).
  6. Выберите пункты: «Файл» (File), «Добавить/удалить оснастку» (Add/Remove Snap-In).
  7. Выберите пункты: «Сертификаты» (Certificates), «Добавить» (Add), «Моя учетная запись пользователя» (My User Account), «Finish» (Готово) и «OK».
  8. Перейдите к пункту «Доверенные корневые центры сертификации» (Trust Root Certification Authorities), «Сертификаты» (Certificates).
  9. Щелкните правой кнопкой по строке «Сертификат» (Certificate), выберите пункты «Все задачи» (All Tasks), «Импортировать» (Import).
  10. Выберите пункт «Сохранить сертификат с рабочего стола» (Save Cert from the Desktop).
  11. Выберите пункт «Поместить все сертификаты в следующее хранилище» (Place all Certificates in the following Store), а затем нажмите кнопку «Обзор» (Browse).
  12. Установите флажок «Отображать физические хранилища» (Show Physical Stores), «Развернуть доверенные корневые центры сертификации» (Expand out Trusted Root Certification Authorities) и выберите пункт «Локальный компьютер» (Local Computer), нажмите «OK», дождитесь завершения импорта.
  13. Проверьте, отображается ли нужный сертификат в списке. Для этого может потребоваться нажать кнопку «Обновить» (Refresh). Закройте консоль управления Microsoft (MMC).
  14. Откройте веб-обозреватель, выберите пункт «Инструменты» (Tools), «Удалить журнал веб-обозревателя» (Delete Browsing History).
  15. Выберите все, кроме «Данные фильтрации InPrivate» (In Private Filtering Data), выполните удаление.
  16. Перейдите в пункт «Свойства веб-обозревателя» (Internet Options), вкладка «Содержание» (Content), «Очистить состояние SSL» (Clear SSL State).
  17. Закройте веб-обозреватель, повторно запустите его и выполните проверку.

Проблема

Невозможно загрузить файл более 50 Мб или выгрузить большие файлы, когда выгрузка занимает более 30 минут при использовании веб-клиента в ОС Windows 7.

Решение

Решения указаны в статье из базы знаний KB2668751.

Доступ к файлам с помощью cURL

Поскольку WebDAV представляет собой расширение HTTP, служебную программу cURL можно использовать для работы с файлом сценария.

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

$ curl -u user:pass -X MKCOL "https://example.com/nextcloud/remote.php/dav/files/

↳USERNAME/$(date '+%d-%b-%Y')"

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

$ curl -u user:pass -T error.log "https://example.com/nextcloud/remote.php/dav/files/

↳USERNAME/$(date '+%d-%b-%Y')/error.log"

Для перемещения файла необходимо выполнить следующее:

$ curl -u user:pass -X MOVE --header 'Destination: https://example.com/nextcloud/

↳remote.php/dav/files/USERNAME/target.jpg' https://example.com/nextcloud/remote.php/

↳dav/files/USERNAME/source.jpg

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

$ curl -X PROPFIND -H "Depth: 1" -u user:pass https://example.com/nextcloud/

↳remote.php/dav/files/USERNAME/ | xml_pp

<?xml version="1.0" encoding="utf-8"?>

<d:multistatus xmlns:d="DAV:" xmlns:oc="http://nextcloud.org/ns" xmlns:s="http://

↳sabredav.org/ns">

<d:response>

<d:href>/nextcloud/remote.php/dav/files/USERNAME/</d:href>

<d:propstat>

<d:prop>

<d:getlastmodified>Tue, 13 Oct 2015 17:07:45 GMT</d:getlastmodified>

<d:resourcetype>

<d:collection/>

</d:resourcetype>

<d:quota-used-bytes>163</d:quota-used-bytes>

<d:quota-available-bytes>11802275840</d:quota-available-bytes>

<d:getetag>"561d3a6139d05"</d:getetag>

</d:prop>

<d:status>HTTP/1.1 200 OK</d:status>

</d:propstat>

</d:response>

<d:response>

<d:href>/nextcloud/remote.php/dav/files/USERNAME/welcome.txt</d:href>

<d:propstat>

<d:prop>

<d:getlastmodified>Tue, 13 Oct 2015 17:07:35 GMT</d:getlastmodified>

<d:getcontentlength>163</d:getcontentlength>

<d:resourcetype/>

<d:getetag>"47465fae667b2d0fee154f5e17d1f0f1"</d:getetag>

<d:getcontenttype>text/plain</d:getcontenttype>

</d:prop>

<d:status>HTTP/1.1 200 OK</d:status>

</d:propstat>

</d:response>

</d:multistatus>