Sto eseguendo Mac OS 10.11.6 El Capitan. C'è un link che vorrei scaricare a livello di codice:
https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16-osx10.11-x86_64.dmg
Se incollo questo URL in qualsiasi browser (ad esempio Safari), il download funziona perfettamente.
Tuttavia, se provo a scaricare lo stesso URL dalla riga di comando utilizzando curl
, non funziona, il risultato è un file vuoto:
$ 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
$
Ovviamente posso ottenere il file tramite il browser, ma vorrei capire perché il curl
comando sopra non funziona.
Perché non è possibile curl
scaricare correttamente questo file, quando è evidentemente presente sul sito Web e può essere correttamente accessibile e scaricato tramite un browser grafico?
curl -v
per "dettagliato". Stamperà sull'errore standard varie informazioni sulla connessione, richiesta e risposta. In questo caso, vedresti che la risposta include HTTP 302 Found
(un codice di reindirizzamento) e Location
un'intestazione con l'URL a cui andare. Quindi potresti man curl
scoprire come dirlo per seguire i reindirizzamenti.
User-Agent
. Inoltre, alcuni download del browser potrebbero avere esito positivo a causa della presenza dei cookie di sessione (ad esempio, se si è effettuato l'accesso) solo su tale browser.