Dostęp do plików Nextcloud za pomocą WebDAV

Nextcloud w pełni obsługuje protokół WebDAV, przez który możesz łączyć się i synchronizować pliki Nextcloud przez WebDAV. W tym rozdziale dowiesz się, jak podłączyć Linux, macOS, Windows i urządzenia mobilne do serwera Nextcloud za pośrednictwem WebDAV. Zanim przejdziemy do konfigurowania WebDAV, rzućmy okiem na zalecany sposób łączenia urządzeń klienckich z serwerami Nextcloud.

Informacja

W poniższych przykładach zastąp example.com/nextcloud adresem URL serwera Nextcloud (pomiń część katalogu, jeśli instalacja znajduje się w katalogu głównym domeny), a „USERNAME” nazwą użytkownika łączącym się jako użytkownik.

Zobacz adres URL WebDav (na dole po lewej w ustawieniach) w swoim Nextcloud.

Informacja

W poniższych przykładach do logowania musisz użyć hasła aplikacji, które możesz wygenerować w ustawieniach zabezpieczeń.

Klienci Nextcloud Desktop (Desktopowi) i mobilni

Zalecanym sposobem synchronizacji komputera stacjonarnego z serwerem Nextcloud jest użycie klientów synchronizacji Nextcloud/ownCloud. Możesz skonfigurować klienta, aby zapisywał pliki w dowolnym katalogu lokalnym oraz możesz wybrać katalogi na serwerze Nextcloud do synchronizacji. Klient wyświetla aktualny stan połączenia i rejestruje całą aktywność, dzięki czemu zawsze wiesz, które zdalne pliki zostały pobrane na Twój komputer i możesz sprawdzić, czy pliki utworzone i zaktualizowane na lokalnym komputerze są prawidłowo zsynchronizowane z serwerem.

Zalecanym sposobem synchronizacji serwera Nextcloud z urządzeniami Android i Apple iOS jest użycie aplikacji mobilnych.

Aby połączyć swoją aplikację mobilną z serwerem Nextcloud, użyj tylko podstawowego adresu URL i folderu:

example.com/nextcloud

Oprócz aplikacji mobilnych dostarczonych przez Nextcloud lub ownCloud, możesz używać innych aplikacji do łączenia się z Nextcloud z urządzenia mobilnego za pomocą WebDAV. WebDAV Navigator to dobra (zastrzeżona) aplikacja dla urządzeń z systemem Android i iPhone. Adres URL do użycia to:

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

Konfiguracja WebDAV

Jeśli wolisz, możesz również podłączyć swój komputer stacjonarny do serwera Nextcloud przy użyciu protokołu WebDAV zamiast korzystania ze specjalnej aplikacji klienckiej. Web Distributed Authoring i Versioning (WebDAV) to rozszerzenie protokołu HTTP (Hypertext Transfer Protocol), który ułatwia tworzenie, odczytywanie i edytowanie plików na serwerach internetowych. Dzięki WebDAV możesz uzyskać dostęp do udostępnień Nextcloud w systemie Linux, macOS i Windows w taki sam sposób, jak do każdego zdalnego udostępnienia sieciowego i pozostać w synchronizacji.

Dostęp do plików w systemie Linux

Dostęp do plików w systemach operacyjnych Linux można uzyskać, korzystając z następujących metod.

Menedżer plików Nautilus

Kiedy skonfigurujesz swoje konto Nextcloud w Centrum sterowania GNOME, Twoje pliki zostaną automatycznie zamontowane przez Nautilusa jako udostępnienie WebDAV, chyba że odznaczysz dostęp do plików.

Możesz także ręcznie zamontować pliki Nextcloud. Użyj protokołu davs://, aby połączyć menedżera plików Nautilus z udostępnieniem Nextcloud:

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

Informacja

Jeśli połączenie z serwerem nie jest zabezpieczone przez HTTPS, użyj dav:// zamiast davs://:

screenshot of configuring Nautilus file manager to use WebDAV

Informacja

Ta sama metoda działa w przypadku innych menedżerów plików, które używają GVfs, takich jak MATE’s Caja i Cinnamon’s Nepomuk.

Dostęp do plików za pomocą menedżera plików KDE i Dolphin

Aby uzyskać dostęp do plików Nextcloud za pomocą menedżera plików Dolphin w KDE, użyj protokołu webdav://:

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

Możesz utworzyć stałe łącze do swojego serwera Nextcloud:

  1. Otwórz Dolphin i kliknij „Sieć” w kolumnie „Miejsca” po lewej stronie.

  2. Kliknij ikonę oznaczoną Dodaj folder sieciowy. Wynikowe okno dialogowe powinno zostać wyświetlone już z wybranym protokołem WebDAV.

  3. Jeśli WebDAV nie jest zaznaczone, wybierz go.

  4. Kliknij Następny.

  5. Wprowadź następujące ustawienia:

    • Nazwa: nazwa, którą chcesz zobaczyć w zakładce Miejsca, na przykład Nextcloud.

    • Użytkownik: nazwa użytkownika Nextcloud używana do logowania, na przykład admin.

    • Serwer: nazwa domeny Nextcloud, na przykład example.com (bez http:// przed albo po następnych katalogach).

    • Folder - wprowadź ścieżkę nextcloud/remote.php/dav/files/USERNAME/.

  6. (Opcjonalnie) Zaznacz pole wyboru „Utwórz ikonę”, aby w kolumnie Miejsca pojawiła się zakładka.

  7. (Opcjonalnie) Podaj specjalne ustawienia lub certyfikat SSL w polu „Port i Szyfrowanie”.

Tworzenie montowań WebDAV w wierszu poleceń systemu Linux

Punkty montowania WebDAV można tworzyć z wiersza poleceń systemu Linux. Jest to przydatne, jeśli wolisz uzyskać dostęp do Nextcloud w taki sam sposób, jak do każdego innego zdalnego montowania systemu plików. Poniższy przykład pokazuje, jak utworzyć osobiste montowanie i montować go automatycznie za każdym razem, gdy logujesz się do komputera z systemem Linux.

  1. Zainstaluj sterownik systemu plików davfs2 WebDAV, który umożliwia montowanie udostępnień WebDAV tak jak każdy inny zdalny system plików. Użyj tego polecenia, aby zainstalować go w systemie Debian/Ubuntu:

    apt-get install davfs2
    
  2. Użyj tego polecenia, aby zainstalować go w CentOS, Fedorze i openSUSE:

    yum install davfs2
    
  3. Dodaj się do grupy davfs2`:

    usermod -aG davfs2 <username>
    
  1. Następnie utwórz katalog nextcloud w swoim katalogu domowym dla punktu montowania oraz .davfs2/ dla swojego osobistego pliku konfiguracyjnego:

    mkdir ~/nextcloud
    mkdir ~/.davfs2
    
  2. Skopiuj /etc/davfs2/secrets do ~/.davfs2:

    cp  /etc/davfs2/secrets ~/.davfs2/secrets
    
  3. Ustaw siebie jako właściciela i nadaj uprawnienia tylko do odczytu i zapisu:

    chown <linux_username>:<linux_username> ~/.davfs2/secrets
    chmod 600 ~/.davfs2/secrets
    
  4. Dodaj swoje dane logowania do Nextcloud na końcu pliku secrets, używając adresu URL serwera Nextcloud oraz nazwy użytkownika i hasła Nextcloud:

    https://example.com/nextcloud/remote.php/dav/files/USERNAME/ <username> <password>
    or
    $PathToMountPoint $USERNAME $PASSWORD
    for example
    /home/user/nextcloud john 1234
    
  5. Dodaj informacje o montowaniu do /etc/fstab:

    https://example.com/nextcloud/remote.php/dav/files/USERNAME/ /home/<linux_username>/nextcloud
    davfs user,rw,auto 0 0
    
  6. Następnie sprawdź, czy montuje i uwierzytelnia się, uruchamiając następujące polecenie. Jeśli skonfigurujesz to poprawnie, nie będziesz potrzebować uprawnień roota:

    mount ~/nextcloud
    
  7. Powinieneś także móc go odmontować:

    umount ~/nextcloud
    

Teraz za każdym razem, gdy logujesz się do systemu Linux, udostępnianie Nextcloud powinno automatycznie montować się za pośrednictwem WebDAV w katalogu ~/nextcloud. Jeśli wolisz zamontować go ręcznie, zmień auto na noauto` w ``/etc/fstab.

Znane problemy

Zagadnienie

Zawartość chwilowo niedostępna

Rozwiązanie

Jeśli napotkasz problemy podczas tworzenia pliku w katalogu, edytuj /etc/davfs2/davfs2.conf i dodaj:

use_locks 0

Zagadnienie

Ostrzeżenia dotyczące certyfikatu

Rozwiązanie

Jeśli używasz certyfikatu z podpisem własnym, pojawi się ostrzeżenie. Aby to zmienić, musisz skonfigurować davfs2, aby rozpoznawał Twój certyfikat. Skopiuj plik mycertificate.pem do /etc/davfs2/certs/. Następnie edytuj /etc/davfs2/davfs2.conf i odkomentuj wiersz servercert. Teraz dodaj ścieżkę swojego certyfikatu, jak w tym przykładzie:

servercert /etc/davfs2/certs/mycertificate.pem

Dostęp do plików za pomocą macOS

Informacja

Finder macOS cierpi na szereg problemów z implementacją i powinien być używany tylko wtedy, gdy serwer Nextcloud działa na Apache i mod_php lub Nginx 1.3.8+. Alternatywne klienty zgodne z systemem macOS, które mogą uzyskiwać dostęp do udostępnień WebDAV, obejmują aplikacje open source, takie jak Cyberduck (patrz instrukcje tutaj) oraz Filezilla. Klienci komercyjni obejmują Mountain Duck, Forklift, Transmit oraz Commander One.

Aby uzyskać dostęp do plików za pomocą Findera macOS:

  1. Z górnego paska menu Findera wybierz Idź > Połącz z serwerem…:

Screenshot of entering your Nextcloud server address on macOS
  1. Gdy otworzy się okno Połącz z serwerem…, wprowadź adres WebDAV serwera Nextcloud w polu Adres serwera:, tj.:

    https://cloud.YOURDOMAIN.com/remote.php/dav/files/USERNAME/
    
Screenshot: Enter Nextcloud server address in “Connect to Server…” dialog box
  1. Kliknij Połącz. Twój serwer WebDAV powinien pojawić się na pulpicie jako udostępniony dysk.

Dostęp do plików za pomocą systemu Microsoft Windows

Jeśli korzystasz z natywnej implementacji WebDAV w systemie Windows, możesz zmapować Nextcloud na nowy dysk za pomocą Eksploratora Windows. Mapowanie na dysk umożliwia przeglądanie plików przechowywanych na serwerze Nextcloud w taki sam sposób, jak pliki przechowywane na zmapowanym dysku sieciowym.

Korzystanie z tej funkcji wymaga połączenia sieciowego. Jeśli chcesz przechowywać pliki w trybie offline, użyj programu Desktop Client, aby zsynchronizować wszystkie pliki na Nextcloud z jednym lub kilkoma katalogami na lokalnym dysku twardym.

Informacja

System Windows 10 domyślnie zezwala teraz na uwierzytelnianie podstawowe, jeśli protokół HTTPS jest włączony przed mapowaniem dysku. W starszych wersjach systemu Windows musisz zezwolić na użycie uwierzytelniania podstawowego w rejestrze systemu Windows: uruchom “regedit“ i przejdź do HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters. Utwórz lub edytuj wartość DWORD BasicAuthLevel (Windows Vista, 7 i 8) lub UseBasicAuth (Windows XP i Windows Server 2003) i ustaw dane wartości na 1 dla połączeń SSL. Wartość 0 oznacza, że uwierzytelnianie podstawowe jest wyłączone, wartość 2 zezwala na połączenia SSL i bez SSL (niezalecane). Następnie zamknij Edytor rejestru i uruchom ponownie komputer.

Mapowanie dysków za pomocą wiersza poleceń

Poniższy przykład pokazuje, jak zmapować dysk za pomocą wiersza polecenia. Aby zmapować dysk:

  1. Otwórz wiersz polecenia w systemie Windows.

  2. Wprowadź następujący wiersz w wierszu polecenia, aby zamapować na dysk Z komputera:

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

gdzie <drive_path> jest adresem URL do Twojego serwera Nextcloud.

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

Komputer mapuje pliki z Twojego konta Nextcloud na dysk z literą Z.

Informacja

Chociaż nie jest to zalecane, możesz również zamontować serwer Nextcloud za pomocą protokołu HTTP, pozostawiając połączenie niezaszyfrowane. Jeśli planujesz korzystać z połączeń HTTP na urządzeniach w miejscu publicznym, zdecydowanie zalecamy korzystanie z tunelu VPN, aby zapewnić niezbędne bezpieczeństwo.

Alternatywna składnia polecenia to:

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

Mapowanie dysków za pomocą Eksploratora Windows

Aby zmapować dysk za pomocą Eksploratora Microsoft Windows:

  1. Otwórz Eksploratora Windows na komputerze z systemem MS Windows.

  2. Kliknij prawym przyciskiem myszy na Komputer i wybierz Mapuj dysk sieciowy… z menu rozwijanego.

  3. Wybierz lokalny dysk sieciowy, na który chcesz zmapować Nextcloud.

  4. Podaj adres swojej instancji Nextcloud, a następnie /remote.php/dav/files/USERNAME/.

Na przykład:

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

Informacja

W przypadku serwerów chronionych protokołem SSL zaznacz opcję Połącz ponownie przy logowaniu, aby upewnić się, że mapowanie jest trwałe po kolejnych ponownych uruchomieniach. Jeśli chcesz połączyć się z serwerem Nextcloud jako inny użytkownik, zaznacz Połącz używając różnych poświadczeń.

screenshot of mapping WebDAV on Windows Explorer
  1. Kliknij przycisk Zakończ.

Eksplorator Windows mapuje dysk sieciowy, udostępniając dostępny Nextcloud.

Dostęp do plików za pomocą Cyberduck

Cyberduck to przeglądarka FTP i SFTP, WebDAV, OpenStack Swift i Amazon S3 typu open source, przeznaczona do przesyłania plików w systemach macOS i Windows.

Informacja

W tym przykładzie zastosowano Cyberduck w wersji 4.2.1.

Aby skorzystać z Cyberduck:

  1. Określ serwer bez żadnych wiodących informacji o protokole. Na przykład:

example.com

  1. Określ odpowiedni port. Wybrany port zależy od tego, czy Twój serwer Nextcloud obsługuje SSL. Cyberduck wymaga wybrania innego typu połączenia, jeśli planujesz używać SSL. Na przykład:

80 (dla WebDAV)

443 (dla WebDAV (HTTPS/SSL))

  1. Skorzystaj z menu rozwijanego «Więcej opcji», aby dodać pozostałą część adresu URL WebDAV w polu «Ścieżka». Na przykład:

remote.php/dav/files/USERNAME/

Teraz Cyberduck umożliwia dostęp do plików na serwerze Nextcloud.

Dostęp do udostępnień publicznych przez WebDAV

Nextcloud zapewnia możliwość dostępu do udostępnień publicznych przez WebDAV.

Aby uzyskać dostęp do udostępnień publicznych, otwórz:

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

w kliencie WebDAV użyj tokenu udostępnienia jako nazwy użytkownika i (opcjonalnego) hasła udostępnienia jako hasła.

Informacja

UstawieniaAdministracjaUdostępnianieZezwalaj użytkownikom na tym serwerze na wysłanie udostępnień do innych serwerów. Ta opcja umożliwia również dostęp WebDAV do udostępnień publicznych, aby ta funkcja mogła działać.

Znane problemy

Zagadnienie

System Windows nie łączy się przy użyciu protokołu HTTPS.

Rozwiązanie 1

Klient Windows WebDAV może nie obsługiwać nazwy serwera (SNI) w połączeniach szyfrowanych. Jeśli napotkasz błąd podczas montowania zaszyfrowanej SSL instancji Nextcloud, skontaktuj się ze swoim dostawcą w sprawie przypisania dedykowanego adresu IP dla serwera opartego na SSL.

Rozwiązanie 2

Klient Windows WebDAV może nie obsługiwać połączeń TLSv1.1 i TLSv1.2. Jeśli ograniczyłeś konfigurację serwera do zapewniania tylko TLSv1.1 i nowszych, połączenie z serwerem może się nie powieść. Więcej informacji można znaleźć w dokumentacji WinHTTP.

Zagadnienie

Pojawia się następujący komunikat o błędzie: Błąd 0x800700DF: Rozmiar pliku przekracza dozwolony limit i nie można go zapisać.

Rozwiązanie

System Windows ogranicza maksymalny rozmiar pliku przesyłanego z lub do udostępnienia WebDAV. Możesz zwiększyć wartość FileSizeLimitInBytes w HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters, klikając Modyfikuj.

Aby zwiększyć limit do maksymalnej wartości 4GB, wybierz opcję Decimal, wprowadź wartość 4294967295 i uruchom ponownie system Windows lub uruchom ponownie usługę WebClient.

Zagadnienie

Uzyskiwanie dostępu do plików z Microsoft Office przez WebDAV kończy się niepowodzeniem.

Rozwiązanie

Znane problemy i sposoby ich rozwiązywania opisano w artykule KB2123563.

Zagadnienie

Nie można zmapować Nextcloud jako dysku WebDAV w systemie Windows przy użyciu certyfikatu z podpisem własnym.

Rozwiązanie

  1. Przejdź do instancji Nextcloud za pomocą ulubionej przeglądarki internetowej.

  2. Klikaj, aż pojawi się błąd certyfikatu w wierszu stanu przeglądarki.

  3. Wyświetl certyfikat, a następnie na karcie Szczegóły wybierz opcję Kopiuj do pliku.

  4. Zapisz na pulpicie pod dowolną nazwą, na przykład myNextcloud.pem.

  5. Start, Uruchom, MMC.

  6. Plik, Dodaj/Usuń przystawkę.

  7. Wybierz Certyfikaty, kliknij Dodaj, Moje konto użytkownika, a następnie Zakończ oraz OK.

  8. Przejdź do sekcji Trust Root Certification Authorities, Certificates.

  9. Kliknij prawym przyciskiem myszy Certyfikat, wybierz wszystkie zadania, importuj.

  10. Wybierz opcję Zapisz certyfikat z pulpitu.

  11. Wybierz Umieść wszystkie certyfikaty w następującym sklepie, kliknij Przeglądaj.

  12. Zaznacz pole, które mówi Pokaż magazyny fizyczne, rozwiń Zaufane główne urzędy certyfikacji i wybierz tam komputer lokalny, kliknij OK, zakończ import.

  13. Sprawdź listę, aby się upewnić, że się pojawił. Prawdopodobnie będziesz musiał odświeżyć, zanim go zobaczysz. Wyjdź z MMC.

  14. Otwórz przeglądarkę, wybierz Narzędzia, Usuń historię przeglądania.

  15. Zaznacz wszystko oprócz Prywatnych danych filtrowania, zakończ.

  16. Przejdź do Opcje internetowe, zakładka Zawartość, Wyczyść stan SSL.

  17. Zamknij przeglądarkę, a następnie otwórz ponownie i przetestuj.

Zagadnienie

Nie można pobierać więcej niż 50 MB ani przesyłać dużych plików, jeśli przesyłanie trwa dłużej niż 30 minut przy użyciu klienta sieci Web w systemie Windows 7.

Rozwiązanie

Obejścia opisano w artykule KB2668751.

Dostęp do plików przy użyciu cURL

Ponieważ WebDAV jest rozszerzeniem HTTP cURL, może być używany do skryptowania operacji na plikach.

Aby utworzyć folder z bieżącą datą jako nazwa:

$ curl -u user:pass -X MKCOL "https://example.com/nextcloud/remote.php/dav/files/USERNAME/$(date '+%d-%b-%Y')"

Aby przesłać plik error.log do tego katalogu:

$ curl -u user:pass -T error.log "https://example.com/nextcloud/remote.php/dav/files/USERNAME/$(date '+%d-%b-%Y')/error.log"

Aby przenieść plik:

$ 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

Aby uzyskać właściwości plików w folderze głównym:

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