多くのdxfタイプファイルを持つWebサーバーがあり、一度に1つだけダウンロードできます。私の考えでは、wgetを使ってこれらすべてのファイルを同時にダウンロードするのが良い考えだと思います。残念ながら、wgetを使用してこれを正常に実行することはできません。
私のコードは次のとおりです
wget -r -A.dxf www.site.com/example/download
このコードは次のエラーを生成します。
HTTP request sent, awaiting response... 403 Forbidden
Remote file does not exist -- broken link!!!
正しいファイル名でURLを指定した場合
wget -O www.site.com/example/download/filename.dxf
ファイルのダウンロードが成功しました。
成功した再帰的なdxfファイル形式をダウンロードするためのコードはどのように見えるべきですか?
答え1
これは、Webサーバーがディレクトリ内のディレクトリのリストを禁止するために発生する可能性があります403 forbidden
(したがってファイルのリストを生成しません)。ダウンロードしたいファイルのリストがわかっている場合は、簡単なテキストファイルを作成してwget
ダウンロードリストを教えてください。
例:
$ cat list.txt
file1.dxf
file2.dxf
fileA.dxf
$ wget --base http://www.site.com/example/download --input-file list.txt
ダウンロードするURL:
答え2
*ファイル名がわかって順番になっており、Webサーバーを使用するとシングルセッションでダウンロードできるため、*シェル拡張でこれを実現できます。
例のファイル名がfile1.dxf、file2.dxf...file5.dxfであるとします。
次のようにファイルをダウンロードできます。
wget -r -np -nd http://www.site.com/example/download/file{1..5}.dxf
ダウンロードされたファイルは次のとおりです。
- ファイル1.dxf
- ファイル2.dxf
- ファイル3.dxf
- ファイル4.dxf
- ファイル5.dxf
同様に、ファイルが filea.dxf の場合、 fileb.dxf....filef.dxf
wget -r -np -nd http://www.site.com/example/download/file{a..f}.dxf
ダウンロードされたファイルは次のとおりです。
- ファイルa.dxf
- ファイルb.dxf
- ファイルc.dxf
- アーカイブ.dxf
- ファイルe.dxf
- ファイルf.dxf
-r:再帰的、-np:親なし、-nd:ディレクトリなし。つまり、ファイルはダウンロードされますが、ディレクトリ階層はダウンロードされません。