私はMac OS 10.11.6 El Capitanを実行しています。プログラムでリンクをダウンロードしたいです。
https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16-osx10.11-x86_64.dmg
このURLをSafariなどのブラウザに貼り付けると、ダウンロードが正常に機能します。
ただし、同じURLを使用してコマンドラインからダウンロードしようとするとcurl
機能しません。結果は空のファイルです。
$ ls -lA
$ curl -O https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16-osx10.11-x86_64.dmg
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
$ ls -lA
total 0
-rw-r--r-- 1 myname staff 0 Nov 7 14:07 mysql-5.7.16-osx10.11-x86_64.dmg
$
もちろん、ブラウザからファイルを取得できますが、理解したいと思います。なぜ上記のコマンドはcurl
機能しません。
curl
なぜこのファイルを正しくダウンロードできないのですか?ウェブサイトに視覚的に存在し、グラフィックWebブラウザを介して正しくアクセスしてダウンロードできるのはいつですか?
ベストアンサー1
Webサーバー側から次のURLにリダイレクトされますhttp://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.16-osx10.11-x86_64.dmg
。 CDNなので、正確な動作(リダイレクトかどうか)は場所によって異なります。
curl
デフォルトでは、リダイレクトはフォローしません。これを行うには、-L
パラメータを追加してください。
curl -L -O https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16-osx10.11-x86_64.dmg