webdavディレクトリ全体を再帰的にコピー/ダウンロードするにはどうすればよいですか?


9

Nautilusを使用してwebdavサーバーからローカルディスクにフォルダーをコピーしようとすると、マニフェストファイル(ディレクトリリストを含むxmlなど)になりそうなものがコピーされます。死体で、私は空のファイルを取得します。

ディレクトリツリー全体を再帰的にコピーできるようにしたいと思います。誰か私がこれを行う方法を知っていますか?

PS:私はNautilus 2.32.2.1とCadaver 0.23.3でUbuntu 11.04を使用しています


GUIを備えたツールが必要ですか、それとも「十分」なwgetですか。
Ocaso Protal、2012

私はwgetをのぞき見しましたが、webdavを行うとは主張していませんでした...できればうまく
いき

2
これを試してください:wget --user = {username} --password = {password} --wait = 20 --limit-rate = 20K -r -p -U Mozilla http:// {website}動作する場合は追加します回答として;)
Rinzwind

1
しかし、webdavは単純なhttpsなので、wgetが機能するはずです。簡単なGoogle検索でastron.nl/northstar/nswiki/lib/exe/…が表示され、webdavでwgetの概要をすばやく確認できます
Ocaso Protal

1
興味深い.. webdavディレクトリ/コレクションをポイントすると、そのディレクトリのhtmlファイルが取得され(つまり、Webページとしてのリストが含まれている)、「localhost / webdav / calibre-library:ディレクトリではありません」 /webdav/calibre-library/index.html:ディレクトリではありません。それをwebdavルートに向けると、かなりランダムです... wholdウェブサーバーのダウンロードを開始します。httpsのみで、自己署名されているため、「
drevicko

回答:


3

この回答は、@ 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」は、親ディレクトリへの昇格を防止します(それ以外の場合は、Webサイト全体をダウンロードします!)。

"-nH"は "my-host"というディレクトリの作成を防ぎます(これは望んでいません)。

「--cut-dirs = 1」は、「my-webdav-dir」というディレクトリの作成を防ぎます。

「--no-check-certificate」は、webdavサーバーで自己署名証明書を使用しているためです(httpsも強制しています)。

「-U Mozilla」はhttpリクエストのユーザーエージェントを「Mozilla」に設定します-私のwebdavサーバーは実際にはこれを必要としませんでしたが、とにかくそれを含めました。


これを使用してnextcloudからファイルをダウンロードすると、次の内容のファイルがダウンロードされますThis is the WebDAV interface. It can only be accessed by WebDAV clients such as the Nextcloud desktop sync client.。なぜそれが起こるのか?
Micromegas

私の推測では、nextcloudは(ブラウザであるMozillaとは対照的に)WebDAVクライアントのように見えるユーザーエージェントを想定しています。あなたが彼らのクライアントとパケットスニファ(例えばwireshark)を持っているなら、あなたはそれがそのリクエストでどのユーザーエージェントを使用するかを見つけることができます。
drevicko

または、そのユーザーエージェントが "Mozilla / 5.0(Android)Nextcloud-android / 3.8.0" from the webである可能性があることを確認します
drevicko

どうもありがとうございます。私がやります
Micromegas

また、ここに。幸運を!
drevicko

3

実際にCadaverをcd使用すると、ファイルをダウンロードしたいディレクトリに移動できますmget *


2
これが有用な答えになるためには、これを行う方法をユーザーに伝える必要があります。
RolandiXor

1
ええと、mget * .フォルダまたはmget foldername結果は501 Not Implementedです。box.comで実際に機能しましたか?
アレクサンダーダム2016年

@Wurstsalat余分な '。'を入れてはいけません ; また、ファイル名を引数として取るので、 `mget foldername / filename 'を実行する必要があります。
JasoonS 2017

サブディレクトリ(再帰部分)がある場合、それは私にはうまくいきません。
Radon Rosborough

3

dav2fsを使用してwebdavサーバーをマウントし、ローカルディレクトリと同じようにアクセスできます。


この方法も使用でき、ファイルやフォルダに簡単にアクセスできます
bobbyrne01

そして、この方法は他の方法と比較して最も遅く、常に機能するとは限りません(ファイル名の混乱に関するバグ)。
アレクサンダーダム2016年

3

または、独自のファイルシステムの一部としてアクセスされるパスとしてマウントすることもできます。

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

注:これ/your/local/mount/pointが機能するには、実際に存在するディレクトリである必要があります。

私の知る限り、あなただけの作業にコマンドを取得するには、次を実行する必要があります知っている: sudo apt-get install davfs2(より多くの設定は、私は謝罪する必要がある場合、それは長い時間前に私はこれをしなかったということでした。)

(Liamの回答では十分な情報が得られなかったので、これを回答として追加しました。)


を使用sudoしてファイルをダウンロードすることは、実際には正しく聞こえません。
Equidamoid、2018年

1
@Equidamoidファイルシステムをマウントすると、ローカルUNIXのアクセス許可をバイパスできる場合があるため、ルートアクセスが必要になります。
Radon Rosborough、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.