Question

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

Était-ce utile?

La solution

cURL le fera pour vous.

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

Autres conseils

Pour les systèmes d'exploitation Unix (et Windows avec Cygwin installé), vous pouvez utiliser Cadavre

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

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

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

open https://user@webdav.example.com/
put file.txt /path/
exit

Enregistrez le script dans un fichier (par exemple, script.txt ) et exécutez la procédure suivante:

winscp.com /script=script.txt

Vous pouvez également tout mettre sur une seule ligne:

winscp.com /command "open https://user@webdav.example.com/" "put file.txt /path/" "exit"

Commencez par la introduction à la génération de scripts avec WinSCP .

Vous pouvez même faire en sorte que l’ interface graphique de WinSCP génère le fichier de script pour vous .

(je suis l'auteur de WinSCP)

cet aperçu contient une liste complète de serveurs WebDav et les clients.

Je choisirais cadaver ou, si mes besoins étaient très spécifiques, un script python utilisant PyWebDAV .

Une autre option est "davix"

.

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

il a séparé les utils comme davix-mkdir davix-put etc. Vous pouvez spécifier des créations dans une URL comme

 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

Utilisez KIO sous KDE:

kioclient cp file.txt 'webdavs://user@webdav.example.com:443/'

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

Imaginez que vous ayez le dossier local suivant à télécharger via WebDAV.

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

1.Vous devez d'abord créer des répertoires imbriqués à partir de votre dossier local (si vous en avez) sur un serveur. WebDAV ne prenant pas en charge le téléchargement récursif, vous devez le faire séparément ( si vous deviez utiliser ftp - vous ajouteriez l'indicateur - ftp-create-dirs ). Pour créer ces dossiers sur WebDAV, vous devez utiliser la 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 dans une requête en fonction de à 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 requête doit échouer.

2.Deuxièmement, vous pouvez utiliser la sortie de find commande shell à 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 parcourt tous vos fichiers dans un répertoire donné (à l'aide de find) et ajoute 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 pour quelqu'un.

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top