Wie kopiere/lade ich rekursiv ein ganzes WebDAV-Verzeichnis herunter?

Wie kopiere/lade ich rekursiv ein ganzes WebDAV-Verzeichnis herunter?

Wenn ich versuche, mit Nautilus einen Ordner von einem WebDAV-Server auf eine lokale Festplatte zu kopieren, wird eine scheinbare Manifestdatei (XML mit Verzeichnisliste usw.) kopiert. Mit Cadaver erhalte ich eine leere Datei.

Ich möchte einen ganzen Verzeichnisbaum rekursiv kopieren können. Weiß jemand, wie ich das machen kann?

ps: Ich verwende Ubuntu 11.04 mit Nautilus 2.32.2.1 und Cadaver 0.23.3

Antwort1

Diese Antwort fasst die in den Kommentaren von @Ocaso und @Rinzwind gegebenen Vorschläge zusammen.

Ich habe das hier verwendet:

wget -r -nH -np --cut-dirs=1 --no-check-certificate -U Mozilla --user={uname} 
    --password={pwd} https://my-host/my-webdav-dir/my-dir-in-webdav

Nicht perfekt (habe jede Menge „index.html?C=M;O=D“ und ähnliches heruntergeladen), aber hat ansonsten ok funktioniert.

Mit „-r“ wird rekursiv heruntergeladen, indem Links gefolgt wird.

Das "-np" verhindert den Aufstieg in übergeordnete Verzeichnisse (sonst laden Sie die ganze Website herunter!).

Das "-nH" verhindert das Erstellen eines Verzeichnisses mit dem Namen "my-host" (was ich nicht wollte).

Die Option „--cut-dirs=1“ verhindert die Erstellung eines Verzeichnisses mit dem Namen „my-webdav-dir“.

Das „--no-check-certificate“ liegt daran, dass ich ein selbstsigniertes Zertifikat auf dem WebDAV-Server verwende (ich erzwinge auch https).

Das "-U Mozilla" setzt den Useragent in der http-Anfrage auf "Mozilla" - mein WebDAV-Server benötigte dies eigentlich nicht, aber ich habe es trotzdem eingebunden.

Antwort2

Alternativ können Sie es als Pfad bereitstellen, auf den als Teil Ihres eigenen Dateisystems zugegriffen werden kann.

sudo mount -t davfs https://your.remote/path /your/local/mount/point

Hinweis: /your/local/mount/pointDamit dies funktioniert, muss es sich um ein tatsächlich vorhandenes Verzeichnis handeln.

Soweit ich weiß, müssen Sie nur Folgendes ausführen, damit der Befehl funktioniert: sudo apt-get install davfs2(Falls weitere Konfigurationen erforderlich sind, entschuldige ich mich, es ist lange her, dass ich das gemacht habe.)

(Ich habe dies als Antwort hinzugefügt, weil ich der Meinung bin, dass Liams Antwort nicht genügend Informationen enthielt.)

Antwort3

Ich weiß, dass dies eine alte Frage ist, aber ich wollte dies tun und fandrclonedas ist wie rsync für die Cloud und unterstützt viele verschiedene Protokolle, einschließlich WebDAV. Sie konfigurieren rclone configeine Remote-Instanz und führen dann einfach aus rclone copy remote:path .und int lädt alles herunter. Sie können auch verwenden rclone sync remote:path .und es überprüft die Dateien und kopiert nur Updates. Es ist ein Golang-Programm und daher sehr portabel.

Antwort4

Sie können dav2fs verwenden, um den WebDAV-Server zu mounten und dann darauf wie auf ein lokales Verzeichnis zuzugreifen.

verwandte Informationen