Как мне рекурсивно скопировать / скачать весь каталог webdav?

Когда я пытаюсь скопировать папку с сервера webdav на локальный диск с помощью Nautilus, он копирует то, что выглядит как файл манифеста (xml со списком каталогов и т. Д.). С трупом я получаю пустой файл.

Я хотел бы иметь возможность рекурсивно копировать целое дерево каталогов. Кто-нибудь знает, как я могу это сделать?

PS: я использую Ubuntu 11.04 с Nautilus 2.32.2.1 и Cadaver 0.23.3

9
задан 14 February 2012 в 10:26

5 ответов

Вы можете использовать dav2fs для монтирования сервера webdav, а затем вы можете получить к нему доступ, как к локальному каталогу.

0
ответ дан 14 February 2012 в 10:26

В этом ответе обобщены предложения, высказанные в комментариях @Ocaso и @Rinzwind.

Я использовал это:

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

Не идеально (скачал много «index.html? C = M; O = D» и т.п.), но в остальном работал нормально.

"-r" загружается рекурсивно, следуя ссылкам.

«-np» предотвращает восхождение к родительским каталогам (иначе вы скачиваете весь сайт!).

«-nH» не позволяет создавать каталог с именем «my-host» (который я не хотел).

«--cut-dirs = 1» не позволяет создавать каталог с именем «my-webdav-dir».

«--no-check-certificate» - потому что я использую самоподписанный сертификат на сервере webdav (я также использую https).

«-U Mozilla» устанавливает пользовательский агент в запросе http на «Mozilla» - моему веб-серверу на самом деле это не нужно, но я все равно включил его.

0
ответ дан 14 February 2012 в 10:26

На самом деле с Cadaver вы можете cd перейти в каталог, из которого вы хотите загрузить файлы, и mget *.

0
ответ дан 14 February 2012 в 10:26

Кроме того, вы можете смонтировать его как путь, к которому вы будете обращаться как часть вашей собственной файловой системы.

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

Примечание: /your/local/mount/point должен быть реально существующим каталогом, чтобы это работало.

Насколько я знаю, вам нужно всего лишь выполнить следующее, чтобы заставить команду работать: sudo apt-get install davfs2 (Если требуется больше конфигурации, я прошу прощения, это было давно, я сделал это). 116] (я добавил это как ответ, потому что чувствую, что ответ Лиама дал недостаточно информации.)

0
ответ дан 14 February 2012 в 10:26

Я понимаю, что это старый вопрос, но я хотел сделать это и нашел rclone, который похож на rsync для облака и поддерживает множество различных протоколов. включая WebDAV. Вы используете rclone config для настройки удаленного сервера, а затем просто выполняете rclone copy remote:path . и int все загрузит. Вы также можете использовать rclone sync remote:path . , и он будет проверять файлы и копировать только обновления. Это программа golang, поэтому она очень портативна.

2
ответ дан 4 June 2020 в 00:34

Другие вопросы по тегам:

Похожие вопросы: