J'ai besoin d'un utilitaire de ligne de commande qui peut effectuer le téléchargement WebDAV (HTTP PUT).
cURL le fera pour vous.
curl -T filetoput.xml http://www.url.com/filetoput.xml
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.
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)
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
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.
Utilisez KIO sous KDE:
kioclient cp file.txt 'webdavs://[email protected]:443/'
Telerik Fiddler a un onglet "composer" où vous pouvez créer votre propre demande WebDAV personnalisée. Par exemple. PROPFIND et OPTIONS etc.