web-dev-qa-db-fra.com

Utilitaire de ligne de commande pour le téléchargement WebDAV

J'ai besoin d'un utilitaire de ligne de commande qui peut effectuer le téléchargement WebDAV (HTTP PUT).

52
rperez

cURL le fera pour vous.

curl -T filetoput.xml http://www.url.com/filetoput.xml
78
Mike McQuaid

Pour unix (et Windows avec Cygwin installé), vous pouvez utiliser Cadaver

12
Matthew Lock

L'utilitaire HTTP de ligne de commande le plus couramment utilisé semble être cURL , qui fera PUT avec son option - T . Cependant, vous devez comprendre un peu le protocole WebDAV pour faire plus que télécharger avec lui.

9
Carey

Gratuit WinSCP (pour Windows) prend en charge WebDAV (et WebDAVS).
WinSCP prend également en charge les opérations de script/ligne de commande.

Exemple de script WinSCP pour télécharger un fichier sur WebDAV:

open https://[email protected]/
put file.txt /path/
exit

Enregistrez le script dans un fichier (par exemple script.txt) et fonctionner comme:

winscp.com /script=script.txt

Vous pouvez également tout mettre sur une seule ligne:

winscp.com /command "open https://[email protected]/" "put file.txt /path/" "exit"

Commencez par introduction aux scripts avec WinSCP .

Vous pouvez même avoir l'interface graphique WinSCP génère le fichier de script pour vous .

(je suis l'auteur de WinSCP)

5
Martin Prikryl

Une autre option est "davix"

https://dmc.web.cern.ch/projects/davix/home

il a séparé des utilitaires comme davix-mkdir davix-put, etc. Vous pouvez spécifier des accréditations dans l'URL comme

 davix-mkdir http://user:[email protected]/dir_to_create
 davix-put local_file http://user:[email protected]/dir_to_create/remote_file_name
3
xoid

cet aperç contient une liste complète des serveurs et clients webdav.

J'opterais pour cadaver ou, si mes besoins étaient très spécifiques, un script python utilisant la bibliothèque R WebDAV .

3
Steen

Si vous devez télécharger l'intégralité du répertoire au lieu d'un fichier via WebDAV, vous pouvez utiliser l'approche suivante.

Imaginez que vous avez le dossier local suivant que vous allez télécharger sur WebDAV.

local_folder_to_upload
│   test.txt
│   test1.txt    
│
└───nested_folder1
│   │   file1.txt
│   │   file2.txt
│   │
│   └───nested_folder2
│       │   file11.txt
│       │   file12.txt

1.Tout d'abord, vous devez créer des répertoires imbriqués à partir de votre dossier local (si vous en avez) sur un serveur. Étant donné que WebDAV ne prend pas en charge le téléchargement récursif, vous devez le faire à une étape distincte ( si vous deviez utiliser ftp - vous ajouteriez --ftp-create-dirs drapeau pour ce faire). Pour créer ces dossiers sur WebDAV, vous devez utiliser méthode MKCOL .

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'

Veuillez noter que vous ne pouvez pas les créer en une seule demande selon selon la spécification .

si une demande de création de collection/a/b/c/d/est faite et/a/b/c/n'existe pas, la demande doit échouer.

2.Deuxièmement, vous pouvez utiliser la sortie de la commande find Shell pour la télécharger sur votre serveur à l'aide de curl.

cd local_folder_to_upload && find . -exec curl -T {} 'http://your.server/uploads/{}' --user 'name:pwd' \;

Le code ci-dessus boucle sur tous vos fichiers à l'intérieur du répertoire donné (en utilisant find) et ajoutez la sortie (nom de fichier avec chemin relatif) à l'espace réservé {} dans l'url de votre serveur Web. Donc, il fait plusieurs demandes (une par fichier), et puisque tous les dossiers imbriqués ont été créés à l'avance - ces demandes ne devraient pas échouer.

J'espère que c'est utile à quelqu'un.

2
Artyom Pranovich

Utilisez KIO sous KDE:

kioclient cp file.txt 'webdavs://[email protected]:443/'
2
kolypto

Telerik Fiddler a un onglet "composer" où vous pouvez créer votre propre demande WebDAV personnalisée. Par exemple. PROPFIND et OPTIONS etc.

0
user5101998