web-dev-qa-db-fra.com

Comment copier / télécharger récursivement un répertoire webdav complet?

Lorsque j'essaie de copier un dossier d'un serveur WebDAV sur un disque local à l'aide de Nautilus, il copie ce qui ressemble à un fichier manifeste (xml avec la liste des répertoires, etc.). Avec cadaver, je reçois un fichier vide.

Je voudrais pouvoir copier récursivement une arborescence de répertoires complète. Est-ce que quelqu'un sait comment je peux faire ça?

ps: j'utilise Ubuntu 11.04 avec Nautilus 2.32.2.1 et Cadaver 0.23.3

9
drevicko

Cette réponse résume les suggestions données dans les commentaires de @Ocaso et @Rinzwind.

J'ai utilisé ceci:

wget -r -nH -np --cut-dirs=1 --no-check-certificate -U Mozilla --user={uname} 
    --password={pwd} https://my-Host/my-webdav-dir/my-dir-in-webdav

Pas parfait (beaucoup de 'index.html? C = M; O = D' téléchargés), mais sinon ça a fonctionné.

Le "-r" télécharge récursivement, en suivant les liens.

Le "-np" empêche de monter dans les répertoires parents (sinon, vous téléchargez tout le site!).

Le "-nH" empêche la création d'un répertoire appelé "mon-hôte" (ce que je ne voulais pas).

Le "--cut-dirs = 1" empêche la création d'un répertoire appelé "my-webdav-dir".

Le "--no-check-certificate" vient du fait que j'utilise un certificat auto-signé sur le serveur WebDAV (je force également https).

"-U Mozilla" définit l'agent utilisateur dans la requête http sur "Mozilla" - mon serveur webdav n'en avait pas réellement besoin, mais je l'ai inclus de toute façon.

3
drevicko

En fait, avec Cadaver, vous pouvez cd dans le répertoire à partir duquel vous souhaitez télécharger des fichiers et mget *.

3
viktor denischik

Vous pouvez utiliser dav2fs pour monter le serveur webdav, puis y accéder comme un répertoire local.

3
Liam

Vous pouvez également le monter en tant que chemin d'accès accessible dans le cadre de votre propre système de fichiers.

Sudo mount -t davfs https://your.remote/path /your/local/mount/point

Remarque: /your/local/mount/point doit être un véritable répertoire existant pour que cela fonctionne.

Pour autant que je sache, il suffit d'exécuter les éléments suivants pour que la commande fonctionne: Sudo apt-get install davfs2 (si davantage de configuration est requise, je m'excuse, cela fait longtemps que je l'ai fait.)

(J'ai ajouté ceci comme réponse car je sens que la réponse de Liam n'a pas donné assez d'informations.)

2
JasoonS