Korištenje cURL-a za preuzimanje udaljenih datoteka iz naredbenog retka
Sadržaj:
- Preuzimanje datoteka s točnim podudaranjem s curlom -O
- Spremanje udaljene datoteke s drugim nazivom s curl -o
- Preuzimanje više datoteka istovremeno s curl
Snažni alat curl naredbenog retka može se koristiti za preuzimanje datoteka s bilo kojeg udaljenog poslužitelja. Dugogodišnji korisnici naredbenog retka znaju da to može biti korisno u raznim situacijama, ali da bi stvari bile jednostavne, mnogi će otkriti da preuzimanje datoteke s curlom često može biti brža alternativa korištenju web preglednika ili FTP klijenta s GUI strane Mac OS X (ili linux).Ovo je korisno za lokalne situacije, ali ima posebnu vrijednost ako ste u situaciji kada trebate preuzeti nešto na udaljeni Mac kada ste povezani putem SSH.
Za potrebe ovog vodiča, prvenstveno ćemo se usredotočiti na preuzimanje datoteka s dva protokola HTTP i SFTP koji se često susreću, iako treba napomenuti da cURL podržava mnogo više protokola. Iako je curl jednostavan za korištenje, preporučuje se poznavanje naredbenog retka.
Preuzimanje datoteka s točnim podudaranjem s curlom -O
Korištenje zastavice velikim slovima -O s curl preuzima datoteku s udaljenog poslužitelja uz zadržavanje točnog naziva datoteke, osnovna sintaksa za to je sljedeća:
curl -O
To znači da ako je navedena URL datoteka nazvana “sample.zip” ona će se preuzeti s nazivom datoteke “sample.zip”, a ako je datoteka nazvana nečim enormnim i kompliciranim poput “LongExampleFileNameForOSXDaily-v- 1-3-51-revizija-515b12-readme.txt” na udaljenom poslužitelju, spremit će se s točnim imenom na lokalnom računalu. Dužim nazivima datoteka često se bolje rukuje s oznakom -o nego oznakom -O, o čemu ćemo se uskoro pozabaviti.
Redoviti čitatelji mogu se sjetiti da smo koristili naredbu curl -O kada smo objašnjavali kako izdvojiti stvarni audio sadržaj iz m3u datoteke za strujanje.
Započinjanje bilo kojeg preuzimanja s curlom prikazuje postotak prijenosa, vrijeme potrošeno na preuzimanje i preostalo vrijeme te brzinu prijenosa.
Snimka zaslona nudi bolji prikaz od zalijepljenog primjera u nastavku, ali izgleda otprilike ovako:
% Ukupno % Primljeno % Xferd Prosječna brzina Vrijeme Vrijeme Vrijeme Trenutačno učitavanje Prijenos Ukupno potrošena lijeva brzina 100 10505 100 10505 0 0 79741 0 --:--:-- --:--:-- --:--:-- 142k
S prikazivanjem brzine prijenosa mogli biste preusmjeriti izlaz curl-a na /dev/null i koristiti ga za testiranje brzine internetske veze, ali wget naredba ima lakšu traku prijenosa za čitanje i praćenje pa je wget bolji prikladan za taj zadatak.
Spremanje udaljene datoteke s drugim nazivom s curl -o
Korištenje zastavice malim slovima -o omogućit će vam da navedete drugačiji naziv datoteke za preuzetu datoteku od onoga kako je nazvana na udaljenom poslužitelju. To može biti korisno za smanjenje dugih naziva datoteka ili jednostavno označavanje nečega tako da je lakše pronaći sami. Opća sintaksa bi bila:
curl -o
Na primjer, ako želite spremiti iOS IPSW datoteku koju ste pronašli na popisu na Appleovim poslužiteljima bez dugog punog naziva, možete upotrijebiti sljedeće:
curl -o iPhone5C-704.ipsw http://appldnld.apple.com/iOS7/031-1828.20131114.P3wE4/iPhone5, 3_7.0.4_11B554a_Restore.ipsw
Ovo će preuzeti datoteku “iPhone5, 3_7.0.4_11B554a_Restore.ipsw” ali s kraćim nazivom kao smisleniji “iPhone5C-704.ipsw”.
Ako radije ne želite spremiti datoteku u trenutni radni direktorij, navedite stazu kao dio naziva datoteke ovako:
curl -o ~/Desktop/localexample.dmg http://url-to-file/example.dmg
Preuzimanje više datoteka istovremeno s curl
cURL može lako preuzeti više datoteka u isto vrijeme, sve što trebate učiniti je navesti više od jednog URL-a na sljedeći način:
curl -O
Za datoteke s različitim nazivima, ili smještene na različitim poslužiteljima, ili unutar različitih putanja direktorija, koristite cijeli URL, na primjer:
curl -O http://ftp.gnu.org/gnu/Licenses/fdl-1.1.txt http://ftp.gnu.org/gnu/ Licence/lgpl-2.1.txt http://ftp.gnu.org/gnu/GNUinfo/Audio/index.txt
S druge strane, ako nazivi datoteka za preuzimanje koriste inkrementalno imenovanje, možete upotrijebiti zagrade za navođenje raspona preuzimanja, na sljedeći način:
curl -O http://ftp.gnu.org/gnu/Licenses/fd1-1.txt
Ovo bi zgrabilo datoteke fdl-1.1.txt, fd1-1.2.txt i fd1-1.3.txt sve u isto vrijeme bez potrebe za specificiranjem svakog jedinstvenog URL-a. Naravno, ovo radi samo ako su datoteke zajedno u istom direktoriju i na istoj domeni.
Provjera autentičnosti pomoću curl
Također možete proći provjeru autentičnosti s cURL-om pomoću oznake -u:
curl -u user:pass -O ftp://remote_url/file-to-download.zip
Imajte na umu da će bash povijest pohraniti lozinku u običnom tekstu kada koristite -u s navedenim korisničkim imenom i lozinkom, stoga se ovo ne preporučuje u većini situacija. To možete zaobići postavljanjem razmaka ispred "curl".Ako ne koristite razmaknicu kao prefiks naredbe, vjerojatno ćete nakon toga htjeti isprazniti povijest naredbi kako biste bili sigurni.
Podržani curl protokoli i upotreba izvan HTTP-a i FTP-a
Kao što je ranije spomenuto, korištenje cURL-a nadilazi HTTP i FTP, budući da unos stranice priručnika curl spominje dodatne protokole u opisu:
Osim toga, otkrit ćete da se curl također može koristiti za PUT i POST zahtjeve, kolačiće, proxy, tunele, nastavak preuzimanja, pa čak i dohvaćanje informacija HTTP zaglavlja ili promjenu korisničkog agenta (efektivno lažiranje) bez potrebe za korištenjem namjenskog web preglednika.
Kao i većina uslužnih programa naredbenog retka, možete naučiti mnogo više o curl-u pozivanjem odgovarajuće stranice priručnika s naredbom 'man curl'.