Se connecter à un serveur WebDAV sous Linux, macOS ou Windows
De cURL à Net use
Le 09 juin 2020 à 14h35
4 min
Logiciel
Logiciel
Pour vous connecter simplement à un serveur via internet ou un réseau local vous utilisez quoi ? Dans de nombreux cas, le protocole WebDAV peut être une solution parfaitement adaptée, permettant une gestion des données depuis l'explorateur de fichiers de tous les grands systèmes d'exploitation, mais aussi en ligne de commandes.
Le protocole WebDAV a beau avoir une vingtaine d'années, et être aussi pratique que simple d'utilisation, il est souvent ignoré ou méconnu. Les utilisateurs de NAS lui préfèrent en général SMB/CIFS, alors que pour l'accès distant aux serveurs, beaucoup se reposent encore sur ce bon vieux (S)FTP quand ils n'utilisent pas des méthodes de déploiement moderne.
De son nom complet Web-based Distributed Authoring and Versioning, il s'agit pour rappel d'un complément au protocole HTTP lui ajoutant des commandes permettant le transfert de données depuis ou vers un serveur. Largement complété depuis ses débuts. Ainsi, de nombreux services en ligne proposent encore un accès WebDAV à leurs serveurs.
Cela permet de gérer des fichiers via un point de montage local tant sous Linux, macOS que Windows. Ils deviennent alors utilisables dans de nombreuses applications tierces ou des outils natifs comme l'explorateur de fichiers. Voici un petit guide de la méthode à suivre pour vous connecter à un serveur WebDAV, sur différents OS.
Sous Windows : ligne de commande ou interface graphique
Sous Windows, WebDAV est nativement pris en charge depuis de nombreuses versions de l'OS. Le protocole est géré à la manière de SMB/CIFS, permettant de connecter des « lecteurs réseau ». Cela peut se faire d'un clic droit sur « Ce PC » dans l'explorateur de fichiers, où il faudra préciser l'URL d'accès du serveur, une lettre de lecteur, puis des identifiants :
Sinon, on peut passer par la bonne vieille ligne de commande :
net use w: https://webdav.monsiteinternet.fr/data
Et... c'est tout. Une fois le lecteur connecté, vous pouvez y créer, supprimer ou modifier fichiers et dossiers, y déplacer des données, y accéder via d'autres applications, etc. Vous pouvez d'ailleurs doubler cliquer sur un fichier pour le l'ouvrir. Bien entendu, la rapidité dépendra principalement de la qualité de votre connexion internet et de la taille du fichier.
D'un clic droit sur le lecteur réseau vous pouvez le déconnecter, ou via la commande :
net use w: /delete
Sous macOS : simple comme un raccourci clavier
Chez Apple, la commande mount_webdav
n'est plus vraiment adaptée. Il faut lui préférer l'interface graphique, là aussi avec l'outil générique de connexion à un serveur (⌘+ K), dans le menu Aller du Finder :
Un élément sera alors ajouté dans les Emplacements. Un clic sur le bouton d'éjection permet de se déconnecter.
Sous Linux (CLI et GNOME)
Finissons par Linux, où les solutions peuvent dépendre de la distribution installée. Pour l'accès en ligne de commande, il faut en général installer un client comme cadaver, dav2fs ou nd. Avec des commandes à adapter selon les cas.
Mais là aussi on a de manière générale accès à une solution via l'interface graphique, comme dans Nautilus pour l'environnement GNOME. Il y a cette fois une subtilité, il faut préciser davs://
en début d'URL plutôt que https://
:
Bonus track : et si on utilisait cURL ?
Il existe de nombreuses applications permettant de se connecter à un serveur WebDAV, d'y gérer ou transférer des fichiers. Mais il y en a une accessible sur de nombreuses plateformes, utilisable en ligne de commande : cURL. Ce qui est logique, puisque cet outil est pensé par nature pour initier des requêtes HTTP.
Ainsi, pour envoyer un fichier sur un serveur via WebDAV, il suffit d'utiliser la commande suivante :
curl -T fichier.ext https://webdav.monsiteinternet.fr/data -u user:password
Pour à l'inverse récupérer un fichier précis :
curl https://webdav.monsiteinternet.fr/data/fichier.ext -u user:password -o fichier.ext
Renommer un fichier :
curl -X MOVE --header "destination:https://webdav.monsiteinternet.fr/data/nouveauFichier.ext" "https://webdav.monsiteinternet.fr/data/fichier.ext" -u user:password
Créer un dossier :
curl -X MKCOL https://webdav.monsiteinternet.fr/nouveauDossier -u user:password
Supprimer un fichier ou un dossier
curl -X DELETE https://webdav.monsiteinternet.fr/data/fichier.ext -u user:password
curl -X DELETE https://webdav.monsiteinternet.fr/data/nouveauDossier -u user:password
Se connecter à un serveur WebDAV sous Linux, macOS ou Windows
-
Sous Windows : ligne de commande ou interface graphique
-
Sous macOS : simple comme un raccourci clavier
-
Sous Linux (CLI et GNOME)
-
Bonus track : et si on utilisait cURL ?
Commentaires (32)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 09/06/2020 à 19h34
Perso j’ai eu pas mal de problèmes récemment avec webdav (sous Ubuntu 18.04). La limitation de la taille du cache n’est pas prise en compte, ni le délai d’écriture de log, et comme il y en avait un toutes les 10 secondes, je me suis retrouvé avec un fichier de log de plus de 4 Go !
Le 09/06/2020 à 21h38
Le problème de bus partagé existe aussi sur les pi disposant d’un lecteur de micro sd ? Mon pi2b est monté ainsi, sans disque usb au sens usb-a externe
Le 09/06/2020 à 21h47
Niveau perfs le protocole n’a rien de sorcier : c’est de l’HTTP très basique, tu envoies sur une socket TCP quelques headers de requête, le serveur te renvoie quelques headers et le fichier arrive à la suite. La plupart des clients/serveurs supportent le keep-alive. Rien n’empêche les requêtes en parallèle, c’est du HTTP.
En fait comme son nom l’indique c’est vraiment juste purement du web. Donc niveau perfs, le protocole ne va avoir aucun impact. Tout va dépendre de la réactivité du serveur. En 2020 on commence à savoir faire des serveurs http qui poutrent.
Par contre attention à une chose : c’est un avis Perso mais j’ai toujours eu le sentiment que l’implémentation dans Windows était assez « lente » ou du moins avait souvent tendance à planter l’UI pendant que ça charge.
Le 09/06/2020 à 21h53
Le 10/06/2020 à 00h21
Le SOC assurerait lui même le rôle d’ un contrôleur de disque ?
Non, je ne crois pas.
Il me semble que interne ou externe, c’ est toujours sur le même bus usb que c’ est traité et le souci c’ est que le port Ethernet l’ est aussi faute de puce réseau.
Ce serait si cher que cela d’ en mettre une vraie basique plutôt que provoquer des surchauffes du SOC sur les Pi 4 ?
Des fois je me demande comment ils calculent les gains de performance par rapport aux couts …..
Le 10/06/2020 à 04h32
Oui, ce que la plupart des implémentations ne gèrent pas, c’est tout le problème. Et c’est ce qui arrive quand on dit “c’est à telle brique de faire le job, pas à la mienne, du coup configurez comme vous voulez c’est pas mon souci). Du coup on se repose sur un serveur HTTP dont les procédure d’auth ne sont pas franchement les plus innovantes par défaut (même si techniquement tout est possible).
Le 10/06/2020 à 04h47
Le 10/06/2020 à 05h16
Disons que c’est comme dans les débats block/objet. Il n’y en a pas un de mieux que l’autre, il y a différentes solutions pour différents besoins. Mais il y en a toujours pour jouer la carte “pureté”.
iSCSI est plus perf qu’un serveur S3 en théorie, mais bon, à implémenter dans une couche logicielle pour de l’accès aux données avec un bon niveau de flexibilité, c’est pas trop gagné. Là c’est un peu pareil. WebDAV fonctionne avec un peu n’importe quoi (dont cURL, c’est pour ça que je l’ai mentionné dans ce papier) du fait de sa nature HTTP, du moment que le serveur dispose des bonnes directives.
C’est même encore plus large que SMB/CIFS qui est massivement utilisé/implémenté. Si on veut de la perf et grimper à plusieurs Go/s, bien entendu qu’il faudra utiliser autre chose. Tant mieux, ce n’est pas le besoin visé, c’est d’ailleurs le plus souvent utilisé en complément d’une couche de type objet sur les services de stockage.
Après, on peut prier pour que l’accès (S)FTP reste dominant parce que c’est un peu plus proche de la couche hardware, mais je doute qu’on rende service à qui que ce soit.
Le 10/06/2020 à 05h18
La routine habituelle des projets qui ne discutent pas en eux en résumé. " />
Le 10/06/2020 à 05h34
Oui et non. Disons que c’est plutôt le souci quand chaque couche est développée de manière isolée, sur de la brique open source, sans réellement quelqu’un qui se préoccupe de la vue d’ensemble. Ce que tu as, enfin parfois, dans des solutions tout-en-un.
Mais soyons clairs : en libre, ça reste mieux… il faudrait juste qu’il y ait un peu plus de coordination globale. Ici on a un bon exemple avec un complément à HTTP, des solutions d’auth à ne plus s’avoir qu’en faire, le W3C qui traine dans le coin, FIDO qui est là, mais bon, tu comprends, WebDAV c’est pas le turfu alors tout ce petit monde ne se préoccupe que de sécuriser l’accès client dans du www, pas trop à des serveurs.
Le 10/06/2020 à 07h30
Le 10/06/2020 à 07h51
Le 10/06/2020 à 08h23
Et dans outlook aussi…
Le 10/06/2020 à 08h35
Le 10/06/2020 à 12h41
c’est sur un pi 4, le réseau n’est plus un bridge (ou je sais plus le terme) sur un port usb, c’est un vrai gigabit qui peut tartiner
idem pour les usb, j’ai pu transférer (rsync) entre 2 DD en usb3 à 70Mo/s en lecture sur l’un et 70 en écriture sur l’autre tout du long (sur des sessions de plusieurs centaines de Go au total)
Le 10/06/2020 à 12h42
ça ressemble aux vagues impressions qui me faisaient penser que webdav était pas top (l’histoire de l’implémentation windows)
Le 09/06/2020 à 15h33
A noter que, de mémoire, webdav avec du http (et non https) ne fonctionne pas sur windows (p-e en modifiant une clef de registre).
Et sur mac mes montages webdav réapparaissaient pas au démarrage de mémoire.
Pour finir et pour l’anecdote, carddav et caldav sont deux extensions à webdav permettant l’accès aux contacts de messagerie et aux agendas. De moins en moins utilisés à cause de la non utilisation des standards de ms/google mais toujours présent.
Le 09/06/2020 à 15h53
Oui pour CalDAV/CardDAV, on en parle dans un papier à venir ;)
Le 09/06/2020 à 16h05
Le 09/06/2020 à 16h16
Le 09/06/2020 à 16h46
ça donne quoi coté perfs par rapport à du samba ?
j’ai un petit nextcloudpi qui tourne, le “client lourd” (officiel nextcloud) de synchro me semble pas super rapide (et j’avais cru comprendre qu’il tournait sur l’api webdav présentée par nextcloud)
alors que le même pi, via un montage samba du disque ou nextcloud stocke ses données, m’avait l’air largement plus rapide (depuis la même machine sous windows 7)
ubuntu 20.04 intègre directement la connexion à un compte nextcloud, qui apparaît comme un lecteur réseau dans le navigateurs de fichiers, est-ce que ça passe bien par webdav du coup (je vois pas trop ce que ça serait d’autre cela dit)
petit test d’hier soir : ~10⁄15 Mo/s en wifi, dans les 50Mo/s en rj45 (via l’intégration native d’ubuntu 20.04), j’ai pas testé en samba par contre, d’où la question initiale
Le 09/06/2020 à 18h00
Le 09/06/2020 à 18h08
Oui ça reste un des problèmes de ce genre de protocole, mais ce n’est pas propre à xDAV, c’est pareil sur plein de protocoles réseau à l’authentification assez basique.
Le 09/06/2020 à 18h28
Le 10/06/2020 à 12h56
Le 10/06/2020 à 13h13
Ah, il faudrait peut-être que je réessaye. Ca fait une éternité que j’ai pas testé ce protocole.
Indépendamment des comparaisons avec Samba et des questions de vitesse/auth à cause du http, quand j’avais essayé WebDAV, il y a sans doute plus de 10 ans, bah c’est carrément au niveau stabilité et ergonomie que ça n’allait pas du tout.
Peut-être qu’il y avait moins de clients, et/ou qu’ils étaient moins matures. Et surtout, il me semble qu’à l’époque il était hors de question que ce soit intégré à l’explorateur de fichiers, ce qui le rendait plutôt balourd par rapport à Samba.
Mais de mémoire je l’avais testé parce que Samba, derrière un pare-feu ou entre des réseaux différents, c’était plus compliqué.
Le 10/06/2020 à 13h51
Le 10/06/2020 à 22h15
grmblh, touché
d’un autre coté, le streaming est assez récent (bon ok on dépasse les 10 ans quand même, mais c’était quand même laborieux au début il me semble)
pour les images, “normalement” sur le web on évite les images trop lourdes, donc même si le http est / était moins performant, c’est presque pas visible.
du moins dans le sens serveur => client
quand on dépose des fichier, donc dans le sens client => serveur, faut toujours des trucs spécifiques (manipuler des fichiers “reçus” (du point de vue du serveur) en php est une plaie, surtout si on s’attaque à des gros fichiers, faut jouer avec les max_upload et autres conf, si on veut avoir un retour sur la progression faut jouer avec du js/ajax etc …)
ça sort du protocole c’est sur, mais au moins en php, qui me semble quand même le plus accessible pour faire des choses avec du http, c’est pas génial
Le 11/06/2020 à 07h39
Le 11/06/2020 à 07h57
Le 11/06/2020 à 08h44
merci pour cette analyse / résumé / infos :)
Le 12/06/2020 à 08h32
J’ai dans ma To Do liste d’installer un serveur CalDav sur mon Mint pour tenter une synchronisation locale de mes calendriers iOS, mais la premier (et dernière à ce stade " /> ) fois que j’avais tenté, je n’avais pas su installer CalDav. J’espère que votre papier pourra m’aider à y voir plus clair " />