14

Wget301/302 リダイレクト時にファイル名を検出できません。たとえば、http://www.mysql.com/downloads/mirror.php?id= 408580 から MySQL ソース コードをダウンロードするには

wget http://www.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.25a-linux2.6-x86_64.tar.gz/from/http://cdn.mysql.com/

ファイルは名前を付けて保存されますindex.html

wget http://cdn.mysql.com/Downloads/MySQL-5.5/mysql-5.5.25a-linux2.6-x86_64.tar.gz

ファイルは名前を付けて保存されますmysql-5.5.25a-linux2.6-x86_64.tar.gz

ただし、次のように、最初の URL は 2 番目の URL へのリダイレクトにすぎません。

curl -I http://www.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.25a-linux2.6-x86_64.tar.gz/from/http://cdn.mysql.com/

HTTP/1.1 302 Found
Date: Mon, 09 Jul 2012 06:11:50 GMT
Server: Apache/2.2
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: mirror=http%3A%2F%2Fcdn.mysql.com%2F; expires=Sat, 08-Jul-2017 06:11:50 GMT; path=/
Location: http://cdn.mysql.com/Downloads/MySQL-5.5/mysql-5.5.25a-linux2.6-x86_64.tar.gz
Content-Encoding: gzip
Vary: Accept-Encoding
Content-Type: text/html; charset=utf-8

http://www.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.25a-linux2.6-x86_64.tar.gz/from/http://cdn.mysql.com/を次のようにwget保存する方法「.tar.gz」は自動的に (引数を使用せずに) ?-O

4

1 に答える 1

28

次のコマンドを試してください。

wget --content-disposition http://www.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.25a-linux2.6-x86_64.tar.gz/from/http://cdn.mysql.com/

これを on に設定すると、「 Content-Disposition」ヘッダーの実験的な (完全に機能するわけではない) サポートが有効になります。これにより、「HEAD」リクエストのためにサーバーへの余分なラウンドトリップが発生する可能性があり、いくつかのバグがあることが知られています。そのため、現在デフォルトで有効になっていません。

このオプションは、「 Content-Disposition」ヘッダーを使用してダウンロードしたファイルの名前を記述する、一部のファイル ダウンロード CGI プログラムで役立ちます。

于 2012-07-09T06:54:44.780 に答える