Befehlszeilenprogramm für WebDAV-Upload
-
05-07-2019 - |
Frage
Ich brauche ein Befehlszeilenprogramm, das WebDAV-Upload tun kann (HTTP PUT).
Lösung
cURL wird es für Sie tun.
curl -T filetoput.xml http://www.url.com/filetoput.xml
Andere Tipps
für UNIX (und Windows mit Cygwin Installation ) können Sie Kadaver
Die am häufigsten verwendete Befehlszeile HTTP-Dienstprogramm erscheint cURL zu sein, was PUT
zu tun mit seiner < a href = "http://curl.haxx.se/docs/manpage.html#-T" rel = "nofollow noreferrer"> - T Option . Sie müßten ziemlich viel des WebDAV-Protokolls zu verstehen, mehr zu tun, als mit ihm laden, though.
Free WinSCP (für Windows) unterstützt WebDAV (und webdavs).
WinSCP unterstützt Scripting / Befehlszeilenvorgänge zu.
Beispiel WinSCP Skript eine Datei über WebDAV hochgeladen werden:
open https://user@webdav.example.com/
put file.txt /path/
exit
Speichern Sie das Skript in eine Datei (z script.txt
) und führen wie:
winscp.com /script=script.txt
Sie können auch alles setzen auf eine einzige Zeile:
winscp.com /command "open https://user@webdav.example.com/" "put file.txt /path/" "exit"
Starten Sie mit Einführung in Scripting mit WinSCP .
Sie können sogar haben WinSCP GUI die Skriptdatei erzeugen für Sie .
(ich bin der Autor von WinSCP)
diese Übersicht eine thourough Liste der WebDAV-Server enthält und Kunden.
ich für kadaver entscheiden würde oder, wenn meine Bedürfnisse waren sehr spezifisch, ein Python-Skript, das PyWebDAV Bibliothek.
Eine weitere Option ist "Davix"
https://dmc.web.cern.ch/projects/davix/home
es hat getrennt utils wie Davix-mkdir Davix Stoßen usw. Sie können creditions in URL angeben, wie
davix-mkdir http://user:passw@example.com/dir_to_create
davix-put local_file http://user:passw@example.com/dir_to_create/remote_file_name
Verwenden KIO unter KDE:
kioclient cp file.txt 'webdavs://user@webdav.example.com:443/'
Wenn Sie das gesamte Verzeichnis anstelle einer Datei über WebDAV hochgeladen werden müssen, können Sie den folgenden Ansatz verwenden.
Stellen Sie sich die folgenden lokalen Ordner haben Sie über WebDAV hochgeladen fahren.
local_folder_to_upload
│ test.txt
│ test1.txt
│
└───nested_folder1
│ │ file1.txt
│ │ file2.txt
│ │
│ └───nested_folder2
│ │ file11.txt
│ │ file12.txt
1.First Sie verschachtelte Verzeichnisse von Ihrem lokalen Ordner erstellen müssen (wenn Sie sie haben) auf einem Server. Da WebDAV nicht rekursive Upload nicht unterstützt, müssen Sie dies in einem separaten Schritt ( tun, wenn Sie ftp
verwenden waren - Sie füge hinzu, diese --ftp-create-dirs
Flagge zu tun). Um diese Ordner über WebDAV erstellen Sie verwenden müssen MKCOL Methode .
curl -X MKCOL 'http://your.server/uploads/nested_folder1' --user 'name:pwd'
curl -X MKCOL 'http://your.server/uploads/nested_folder1/nested_folder2' --user 'name:pwd'
Bitte beachten Sie, dass Sie diese nicht in einer Anfrage erstellen können gemäß die spec .
, wenn eine Anfrage Sammlung / a / b / c / d zum Erstellen / gemacht wird, und / A / b / c / existiert nicht, muss die Anforderung fehlschlagen.
2.Zweite Sie die Ausgabe von Shell-Befehl finden sie es zu Ihrem Server hochladen curl
verwendet wird.
cd local_folder_to_upload && find . -exec curl -T {} 'http://your.server/uploads/{}' --user 'name:pwd' \;
-Code über eine Schleife über all Ihre Dateien im angegebenen Verzeichnis (unter Verwendung finden) und den Ausgang (Dateinamen mit relativem Pfad) auf den Platzhalter {}
in der URL des Webservers hinzuzufügen. So macht es mehrere Anfragen (einer pro jede Datei), und da alle verschachtelten Ordner im Voraus erstellt wurden -. Diese Anforderungen nicht scheitern
Ich hoffe, es ist hilfreich für jemanden.
Telerik Fiddler hat eine „komponieren“ Tab, wo Sie erstellen können Sie Ihre eigene angepasste WebDAV Anfrage. Z.B. PROPFIND und OPTIONS etc.