Mac OS 10.11.6 El Capitan kullanıyorum. Programlı olarak indirmek istediğim bir bağlantı var:
https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16-osx10.11-x86_64.dmg
Bu URL'yi herhangi bir tarayıcıya yapıştırırsam (örn. Safari), indirme işlemi mükemmel şekilde çalışır.
Ancak, aynı URL'yi kullanarak komut satırından indirmeyi denersem curl
, çalışmaz; sonuç boş bir dosyadır:
$ 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
$
Tabi ki tarayıcısı üzerinden dosya alabilirsiniz, ama ben anlamak istiyorum nedencurl
komut yukarıdaki işi yapmaz.
curl
Web sitesinde açıkça göründüğü ve grafiksel bir web tarayıcısından doğru bir şekilde erişilip indirilebildiği halde bu dosyayı neden doğru şekilde indiremiyorsunuz?
curl -v
için "ayrıntılı" için kullanabilirsiniz . Bağlantı, istek ve yanıtla ilgili çeşitli bilgileri standart hataya yazdıracaktır. Bu durumda, yanıtın HTTP 302 Found
(bir yönlendirme kodu) ve Location
gidilecek URL’yi içeren bir başlık içerdiğini göreceksiniz . Sonra man curl
yönlendirmeleri takip etmesini nasıl söyleyeceğini öğrenebilirsin.
User-Agent
. Ek olarak, bazı tarayıcı indirmeleri oturum çerezleri (örneğin, oturum açtıysanız) yalnızca söz konusu tarayıcıda bulunduğundan başarılı olabilir.