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

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

Примечание

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

Смотрите URL-адрес веб-страницы (внизу слева, настройки) на вашем Nextcloud.

Примечание

In the following examples, you must use an app-password for login, which you can generate in your security settings.

Nextcloud Desktop и мобильные клиенты

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

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

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

example.com/nextcloud

В дополнение к мобильным приложениям, предоставляемым Nextcloud или ownCloud, вы можете использовать другие приложения для подключения к Nextcloud со своего мобильного устройства с помощью WebDAV. WebDAV Navigator - хорошее (проприетарное) приложение для устройств Android и iPhone. 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, используя следующие методы.

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

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

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

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

Примечание

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

screenshot of configuring Nautilus file manager to use WebDAV

Примечание

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

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

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

webdav://example.com/nextcloud/remote.php/dav/files/USERNAME/
screenshot of configuring Dolphin file manager to use WebDAV

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

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

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

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

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

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

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

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

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

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

  6. (Optional) Check the «Create icon» checkbox for a bookmark to appear in the Places column.

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

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

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

    chown <linux_username>:<linux_username> ~/.davfs2/secrets
    chmod 600 ~/.davfs2/secrets
    
  4. Добавьте свои учетные данные для входа в 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
    
  5. Добавьте информацию о монтировании в /etc/fstab:

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

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

    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+. Альтернативные macOS-совместимые клиенты, способные получать доступ к общим ресурсам WebDAV, включают приложения с открытым исходным кодом, такие как Cyberduck (см. Инструкции здесь) и Filezilla. Коммерческие клиенты включают в себя Mountain Duck, Forklift, Transmit и Commander One.

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

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

Screenshot of entering your Nextcloud server address on macOS
  1. Когда откроется окно Connect to Server…, введите адрес WebDAV вашего сервера Nextcloud в поле Адрес сервера:, т.е.

Screenshot: Enter Nextcloud server address in “Connect to Server...” dialog box
  1. Нажмите Подключить. Ваш сервер WebDAV должен появиться на рабочем столе как общий диск.

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

If you use the native Windows implementation of WebDAV, you can map Nextcloud to a new drive using Windows Explorer. Mapping to a drive enables you to browse files stored on a Nextcloud server the way you would files stored in a mapped network drive.

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

Примечание

Windows 10 теперь по умолчанию разрешает обычную аутентификацию, если HTTPS включен перед подключением вашего диска. В более старых версиях Windows вы должны разрешить использование базовой аутентификации в реестре Windows: запустите «regedit» и перейдите к HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesWebClientParameters. Создайте или измените значение DWORD «BasicAuthLevel» (Windows Vista, 7 и 8) или «UseBasicAuth» (Windows XP и Windows Server 2003) и установите для его значения данных значение 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

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

Примечание

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

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

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

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

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

  1. Перейдите на свой компьютер в проводнике Windows.

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

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

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

Пример:

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

Примечание

For SSL protected servers, check Reconnect at sign-in to ensure that the mapping is persistent upon subsequent reboots. If you want to connect to the Nextcloud server as a different user, check Connect using different credentials.

screenshot of mapping WebDAV on Windows Explorer
  1. Нажмите кнопку Готово.

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

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

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

Примечание

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

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

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

example.com

2. Specify the appropriate port. The port you choose depends on whether or not your Nextcloud server supports SSL. Cyberduck requires that you select a different connection type if you plan to use SSL. For example:

80 (для WebDAV)

443 (для WebDAV (HTTPS/SSL))

3. Use the „More Options“ drop-down menu to add the rest of your WebDAV URL into the „Path“ field. For example:

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. This option also allows WebDAV access to public shares needs to be enabled in order to make this feature work.

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

Проблема

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

Решение 1

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

Решение 2

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

Проблема

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

Решение

Windows limits the maximum size a file transferred from or to a WebDAV share may have. You can increase the value FileSizeLimitInBytes in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters by clicking on Modify.

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

Проблема

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

Решение

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

Проблема

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

Решение

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

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

  3. Просмотрите сертификат, затем на вкладке «Сведения» выберите «Копировать в файл».

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

  5. Пуск, Выполнить, MMC.

  6. Файл, добавить/удалить оснастку.

  7. Выберите «Сертификаты», нажмите «Добавить», «Моя учетная запись», «Готово» и «ОК».

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

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

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

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

  12. Установите флажок «Показать физические хранилища», «Развернуть доверенные корневые центры сертификации» и выберите «Локальный компьютер», нажмите «ОК», завершите импорт.

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

  14. Откройте Браузер, выберите Инструменты, Удалить историю просмотров.

  15. Выберите все, кроме Приватной фильтрации данных, завершите.

  16. Перейдите в Свойства обозревателя, Вкладка содержимого, Очистить состояние SSL.

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

Проблема

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.

Решение

Обходные пути описаны в статье 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>