如何遞歸複製/下載整個 webdav 目錄?

如何遞歸複製/下載整個 webdav 目錄?

當我嘗試使用 Nautilus 將資料夾從 webdav 伺服器複製到本機磁碟時,它會複製看似清單檔案的內容(帶有目錄列表的 xml 等)。對於屍體,我得到一個空文件。

我希望能夠遞歸複製整個目錄樹。有人知道我該怎麼做?

ps:我用 Ubuntu 11.04 與 Nautilus 2.32.2.1 和 Cadaver 0.23.3

答案1

這個答案總結了@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」 - 我的 webdav 伺服器實際上不需要這個,但我還是包含了它。

答案2

或者,您可以將其安裝為可作為您自己的檔案系統的一部分進行存取的路徑。

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

注意:/your/local/mount/point必須是真實存在的目錄才能運作。

據我所知,您只需要運行以下命令即可使命令正常工作:( sudo apt-get install davfs2如果需要更多配置,我很抱歉,我很久以前就這樣做了。)

(我將其添加為答案,因為我覺得利亞姆的答案沒有提供足夠的資訊。)

答案3

我意識到這是一個老問題,但我想做這個,我發現複製這就像雲端中的 rsync,支援許多不同的協議,包括 WebDAV。您可以用來rclone config配置遠程,然後只需執行rclone copy remote:path .即可,int 將下載所有內容。您也可以使用它rclone sync remote:path .,它將檢查文件並僅複製更新。它是一個 golang 程序,因此非常可移植。

答案4

您可以使用 dav2fs 掛載 webdav 伺服器,然後您可以像存取本機目錄一樣存取它。

相關內容