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

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

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

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

Официальный Nextcloud Desktop и мобильные клиенты

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

Рекомендуемый способ синхронизации сервера Nextcloud с устройствами Android и Apple iOS - использование мобильных приложений.

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

https://cloud.example.com

https://example.com/nextcloud (if Nextcloud is installed in a subdirectory called "nextcloud")

Сторонние клиенты WebDAV

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

Вы также можете использовать сторонние приложения с поддержкой WebDAV для подключения вашего мобильного устройства к Nextcloud.

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

Мобильные клиенты, о которых сообщили участники сообщества Nextcloud, включают:

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

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

https://example.com/nextcloud/remote.php/dav/files/USERNAME/ (if Nextcloud is installed in a subdirectory called "nextcloud")

Примечание

При использовании стороннего клиента WebDAV (включая встроенный клиент вашей операционной системы) для входа в систему следует использовать пароль приложения, а не обычный пароль. Помимо повышения безопасности, это значительно повышает производительность <https://github.com/nextcloud/server/issues/32729#issuecomment-1556667151>_. Чтобы настроить пароль приложения, войдите в веб-интерфейс Nextcloud, нажмите на аватар в правом верхнем углу и выберите Личные настройки. Затем выберите Безопасность на левой боковой панели и прокрутите до самого низа. Там вы можете создать пароль приложения (который также можно отозвать в будущем, не меняя основной пароль пользователя).

Примечание

В следующих примерах вы должны заменить example.com/nextcloud URL-адресом вашего сервера Nextcloud (пропустите часть каталога, если установка находится в корне вашего домена), а USERNAME - именем подключающегося пользователя.

См. адрес для подключения к WebDAV (снизу слева в меню настройки) на Вашей странице Nextcloud

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

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

Файловый менеджер Наутилус

Когда вы настраиваете свою сетевую учётную запись Nextcloud в Центре управления GNOME, ваши файлы будут автоматически подключаться файловым менеджером Nautilus как общий ресурс WebDAV, если вы не отключите доступ к файлам.

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

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

Примечание

Если ваше соединение с сервером не защищено HTTPS, используйте dav:// вместо davs://.

Снимок экрана настройки файлового менеджера Nautilus для использования WebDAV

Примечание

Тот же метод работает и для других файловых менеджеров, использующих GVFS, таких как Caja из MATE и Nemo из Cinnamon.

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

Чтобы получить доступ к файлам Nextcloud с помощью файлового менеджера Dolphin в KDE, используйте протокол webdav://:

webdav://example.com/nextcloud/remote.php/dav/files/USERNAME/
Снимок экрана: настройка файлового менеджера Dolphin для использования WebDAV

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

  1. Откройте Dolphin и нажмите «Сеть» в левой колонке «Места».

  2. Нажмите на иконку с надписью Добавить сетевую папку. Результирующий диалог должен появиться с уже выбранным WebDAV.

  3. Если WebDAV не выбран, выберите его.

  4. Нажмите кнопку Далее.

  5. Введите следующие настройки:

    • Имя: имя, которое вы хотите видеть в закладке Места, например, Nextcloud.

    • Пользователь: имя пользователя Nextcloud, которое вы использовали для входа, например, admin.

    • Сервер: доменное имя Nextcloud, например, example.com (без http:// до и после каталогов).

    • Папка - введите путь nextcloud/remote.php/dav/files/USERNAME/.

  6. (Необязательно) Установите флажок «Создать значок», чтобы закладка появилась в столбце «Места».

  7. (Необязательно) Укажите любые специальные настройки или сертификат SSL в поле «Порт и шифрование».

Создание точек монтирования 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 <username>
    
  4. Затем создайте каталог nextcloud в вашем домашнем каталоге для точки монтирования и .davfs2/ для вашего личного файла конфигурации:

    mkdir ~/nextcloud
    mkdir ~/.davfs2
    
  5. Скопируйте /etc/davfs2/secrets в ~/.davfs2:

    cp  /etc/davfs2/secrets ~/.davfs2/secrets
    
  6. Установите себя в качестве владельца и выдайте только владельцу права доступа для чтения и записи:

    chown <linux_username>:<linux_username> ~/.davfs2/secrets
    chmod 600 ~/.davfs2/secrets
    
  7. Добавьте свои учётные данные для входа в Nextcloud в конец файла secrets, используйте URL-адрес вашего сервера Nextcloud, а также имя пользователя и пароль для Nextcloud:

    https://example.com/nextcloud/remote.php/dav/files/USERNAME/ <username> <password>
    or
    $PathToMountPoint $USERNAME $PASSWORD
    for example
    /home/user/nextcloud john 1234
    
  8. Добавьте информацию о монтировании в /etc/fstab:

    https://example.com/nextcloud/remote.php/dav/files/USERNAME/ /home/<linux_username>/nextcloud davfs user,rw,auto 0 0
    
  9. Затем проверьте, что он монтируется и аутентифицируется, выполнив следующую команду. При правильной установке вам не понадобятся права root:

    mount ~/nextcloud
    
  10. Вы также должны иметь возможность размонтировать его:

    umount ~/nextcloud
    

Теперь каждый раз, когда вы входите в систему Linux, ваша папка Nextcloud должна автоматически монтироваться через WebDAV в ваш каталог ~/nextcloud. Если вы предпочитаете монтировать его вручную, измените auto на noauto в /etc/fstab.

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

Проблема

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

Решение

Если при создании файла в каталоге возникают проблемы, отредактируйте файл /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

Примечание

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

Чтобы получить доступ к файлам через macOS Finder:

  1. В верхней строке меню Finder выберите Go > Подключиться к серверу…

    Скриншот ввода адреса сервера Nextcloud на macOS
  2. Когда откроется окно Подключиться к серверу.., введите адрес WebDAV вашего сервера Nextcloud в поле Адрес сервера:, т.е.:

    https://cloud.YOURDOMAIN.com/remote.php/dav/files/USERNAME/
    
    Скриншот: Введите адрес сервера Nextcloud в диалоговом окне "Подключиться к серверу..."
  3. Нажмите Подключить. Ваш сервер WebDAV должен появиться на рабочем столе как общий диск.

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

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

Использование этой функции требует подключения к сети. Если вы хотите хранить ваши файлы в автономном режиме, используйте Desktop Client для синхронизации всех файлов вашего Nextcloud с одним или несколькими каталогами вашего локального жёсткого диска.

Примечание

Windows 10 теперь по умолчанию разрешает Basic Authentication, если HTTPS включен перед подключением вашего диска.

В более старых версиях Windows необходимо разрешить использование Basic Authentication в реестре Windows:

  • запустите regedit и пройдите по пути HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters.

  • Создайте или отредактируйте BasicAuthLevel (Windows Vista, 7 и 8) или UseBasicAuth (Windows XP и Windows Server 2003), значение DWORD и установите ему значение 1 для SSL-соединений. Значение 0 означает, что базовая аутентификация отключена, а значение 2 разрешает как SSL, так и не-SSL-соединения (не рекомендуется).

  • Затем выйдите из редактора реестра и перезагрузите компьютер.

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

В следующем примере показано, как подключить диск с помощью командной строки. Чтобы подключить диск:

  1. Откройте командную строку Windows.

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

    net use Z: https://<drive_path>/remote.php/dav/files/USERNAME/ /user:youruser yourpassword
    

    с <drive_path> в качестве URL-адреса вашего сервера Nextcloud. Например:

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

    Компьютер назначит диск Z для файлов вашей учётной записи Nextcloud.

Примечание

Если вы получаете следующую ошибку «Произошла системная ошибка 67. Не удается найти сетевое имя.``, откройте приложение Службы и убедитесь, что служба WebClient запущена и запускается автоматически при запуске.

Примечание

Хотя это крайне не рекомендуется, вы можете подключить сервер Nextcloud с помощью HTTP, оставив соединение незашифрованным.

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

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

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

Сопоставление дисков с помощью проводника Windows

Чтобы подключить диск с помощью Microsoft Windows Explorer:

  1. Откройте Проводник Windows на компьютере под управлением MS Windows.

  2. Щёлкните правой кнопкой мыши на элементе Компьютер и выберите Подключить сетевой диск… в раскрывающемся меню.

  3. Выберите локальный сетевой диск, к которому вы хотите подключить Nextcloud.

  4. Укажите адрес своего экземпляра Nextcloud, /remote.php/dav/files/USERNAME/.

    Пример:

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

    Примечание

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

    Скриншот отображения WebDAV в проводнике Windows
  1. Нажмите кнопку Готово.

Проводник Windows отображает сетевой диск, делая ваш экземпляр Nextcloud доступным.

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

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

Примечание

В этом примере используется Cyberduck версии 4.2.1.

Чтобы использовать Cyberduck:

  1. Укажите сервер без какой-либо информации протокола.

    Например: example.com

  2. Укажите соответствующий порт.

    Выбранный вами порт зависит от того, поддерживает ли ваш сервер Nextcloud SSL. Cyberduck требует, чтобы вы выбрали другой тип подключения, если вы планируете использовать SSL.

    Пример:
    • 80 для незашифрованного WebDAV

    • 443 для защищённого WebDAV (HTTPS/SSL)

  3. Используйте раскрывающееся меню «Дополнительные параметры», чтобы добавить оставшуюся часть URL-адреса WebDAV в поле «Путь».

    Например: remote.php/dav/files/USERNAME/

Теперь Cyberduck обеспечивает доступ к файлам на сервере Nextcloud.

Доступ к общедоступным ресурсам через WebDAV

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

Чтобы получить доступ к общедоступной папке, откройте:

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

в клиенте WebDAV используйте токен общего доступа в качестве имени пользователя и (необязательно) общий пароль в качестве пароля. Например, для ссылки на общий доступ https://example.com/s/kFy9Lek5sm928xP именем пользователя будет kFy9Lek5sm928xP.

Примечание

НастройкиАдминистрированиеОбщий доступРазрешить пользователям этого сервера отправлять общие ресурсы на другие серверы. Этот параметр также разрешает доступ WebDAV к общедоступным общим ресурсам и должен быть включен, чтобы эта функция работала, за исключением случаев, когда используется cURL (см. ниже).

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

Проблема

Windows не подключается с использованием HTTPS.

Решение 1

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

Решение 2

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

Проблема

Появляется следующее сообщение об ошибке: Ошибка 0x800700DF: размер файла превышает допустимый предел и не может быть сохранен.

Решение

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

Чтобы увеличить ограничение до максимального значения 4 ГБ, выберите Десятичное число, введите значение 4294967295 и перезагрузите Windows или перезапустите службу WebClient.

Проблема

Добавление диска WebDAV в Windows с помощью описанных выше шагов не отображает правильный размер доступного пространства в Nextcloud, а вместо этого показывает размер диска C: с его доступным пространством.

Ответ

К сожалению, это ограничение самого WebDAV, потому что он не дает клиенту возможности получить доступное свободное пространство с сервера. Windows автоматически возвращается к показу размера диска C: с его доступным пространством. Так что, к сожалению, нет реального решения этой проблемы

Проблема

Не удается получить доступ к вашим файлам из Microsoft Office через WebDAV.

Решение

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

Проблема

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

Решение

  1. Перейдите к своему экземпляру Nextcloud в предпочитаемом веб-браузере.

  2. Нажимайте, пока не дойдете до ошибки сертификата в строке состояния браузера.

  3. View the certificate, then from the Details tab, select „Copy to File“.

  4. Сохраните на рабочий стол с произвольным именем, например myNextcloud.pem.

  5. Go to Start menu > Run, type MMC, and click „OK“ to open Microsoft Management Console.

  6. Перейдите к Файл > Добавить/удалить оснастку.

  7. Select Certificates, Click „Add“, choose „My User Account“, then „Finish“, and finally „OK“.

  8. Выберите Доверенные корневые центры сертификации, Сертификаты.

  9. Щёлкните правой кнопкой мыши по Сертификат, выберите Все задачи, Импорт.

  10. Выберите Сохранить сертификат на рабочем столе.

  11. Выберите «Поместить все сертификаты в следующее хранилище», нажмите «Обзор»,

  12. Check the Box that says Show Physical Stores, expand out Trusted Root Certification Authorities, select Local Computer there, click „OK“, and Complete the Import.

  13. Проверьте список, чтобы убедиться, что сертификат добавлен. Вам, вероятно, нужно нажать Обновить. Выйдите из MMC.

  14. Выйти из ММС.

Для пользователей Firefox:

  1. Запустите браузер, перейдите в меню приложений История Очистить недавнюю историю…

  2. Выберите «Все» в раскрывающемся меню «Диапазон времени для очистки».

  3. Установите флажок «Активные логины».

  4. Нажмите кнопку «Очистить сейчас»

  5. Закройте браузер, затем снова откройте и протестируйте.

Для пользователей браузеров на базе Chrome (Chrome, Chromium, Microsoft Edge):

  1. Откройте панель управления Windows, перейдите в раздел «Свойства обозревателя».

  2. На вкладке «Содержимое» нажмите кнопку «Очистить состояние SSL».

  3. Закройте браузер, затем снова откройте и протестируйте.

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

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

Примечание

НастройкиАдминистрированиеОбщий доступРазрешить пользователям на этом сервере отправлять общие ресурсы на другие серверы. Если эта опция выключена, cURL нужно передать параметр --header "X-Requested-With: XMLHttpRequest"

Чтобы создать папку с текущей датой в качестве имени:

$ 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>

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

WinSCP — это бесплатный клиент SFTP, FTP, WebDAV, S3 и SCP с открытым исходным кодом для Windows. Его основная функция — передача файлов между локальным и удаленным компьютером. Помимо этого, WinSCP предлагает сценарии и основные функции управления файлами.

Вы можете загрузить портативную версию WinSCP и запустить её в Linux через Wine.

Чтобы запустить WinSCP в Linux, загрузите Wine через диспетчер пакетов вашего дистрибутива, а затем запустите его с помощью команды: wine WinSCP.exe.

Чтобы подключиться к Nextcloud:

  • Запустите WinSCP

  • Нажмите «Сессия» в меню

  • Нажмите пункт меню «Новая сессия»

  • Установите в раскрывающемся списке «Файловый протокол» значение WebDAV

  • В раскрывающемся списке «Шифрование» выберите «Неявное шифрование TLS/SSL»

  • Заполните поле имени хоста: example.com

  • Заполните поле имени пользователя: NEXTCLOUDUSERNAME

  • Заполните поле пароля: NEXTCLOUDPASSWORD

  • Нажмите кнопку „Дополнительно…“

  • Перейдите в «Окружение», «Каталоги» с левой стороны.

  • Заполните поле «Удалённый каталог» следующим образом: /nextcloud/remote.php/dav/files/NEXTCLOUDUSERNAME/

  • Нажмите кнопку „ОК“

  • Нажмите кнопку „Сохранить“

  • Выберите нужные параметры и нажмите кнопку «ОК».

  • Нажмите кнопку «Войти», чтобы подключиться к Nextcloud.

Примечание

It is recommended to use an app password for the password if you use TOTP as WinSCP does not understand TOTP with Nextcloud at the time of writing (2022-11-07).