Paggamit ng cURL upang Mag-download ng Mga Remote na File mula sa Command Line

Talaan ng mga Nilalaman:

Anonim

Ang makapangyarihang curl command line tool ay maaaring gamitin upang mag-download ng mga file mula sa halos anumang remote server. Alam ng mga matagal nang gumagamit ng command line na maaari itong maging kapaki-pakinabang para sa iba't ibang uri ng mga sitwasyon, ngunit para mapanatiling simple ang mga bagay, masusumpungan ng marami na ang pag-download ng file na may curl ay kadalasang mas mabilis na alternatibo sa paggamit ng web browser o FTP client mula sa GUI side ng Mac OS X (o linux).Ito ay kapaki-pakinabang para sa mga lokal na sitwasyon, ngunit mayroong partikular na halaga kung ikaw ay nasa isang sitwasyon kung saan kailangan mong mag-download ng isang bagay sa isang malayuang Mac kapag nakakonekta sa pamamagitan ng SSH.

Para sa mga layunin ng walkthrough na ito, pangunahing tututukan namin ang pag-download ng mga file mula sa dalawang karaniwang nakakaharap na HTTP at SFTP protocol, bagama't dapat tandaan na ang cURL ay sumusuporta sa marami pang protocol. Bagama't madaling gamitin ang curl, inirerekomenda ang pagkakaroon ng kaunting kaalaman sa command line.

I-download ang Exact Match Files na may curl -O

Paggamit ng uppercase -O na flag na may curl ay nagda-download ng file mula sa remote server habang pinapanatili ang eksaktong pangalan ng file, ang pangunahing syntax para dito ay ang sumusunod:

curl -O

Ito ay nangangahulugan na kung ang tinukoy na URL file ay pinangalanang "sample.zip" ito ay magda-download gamit ang filename na "sample.zip", at kung ang file ay pinangalanan ng isang bagay na napakalaki at kumplikado tulad ng "LongExampleFileNameForOSXDaily-v- 1-3-51-revision-515b12-readme.txt" sa malayong server, ito ay magse-save gamit ang eksaktong pangalan na iyon sa lokal na makina. Ang mas mahahabang pangalan ng file ay kadalasang mas mahusay na pinangangasiwaan gamit ang flag na -o kaysa sa -O, na tatalakayin natin sa ilang sandali.

Maaaring maalala ng mga regular na mambabasa na ginamit namin ang curl -O command kapag nagpapaliwanag kung paano i-extract ang aktwal na audio content mula sa isang m3u streaming file.

Pagsisimula ng anumang pag-download gamit ang curl ay nagpapakita ng porsyentong inilipat, oras na ginugol sa pag-download at oras na natitira, at ang bilis ng paglipat.

Nag-aalok ang screenshot ng mas magandang representasyon kaysa sa na-paste na halimbawa sa ibaba, ngunit ganito ang hitsura nito:

% Kabuuan % Natanggap % Xferd Average na Bilis ng Oras Oras Oras Kasalukuyang Pag-upload ng Dload Kabuuang Ginastos Kaliwang Bilis 100 10505 100 10505 0 0 79741 0 --:--:-- --:--:-- --:--:-- 142k

Sa bilis ng paglipat na nagpapakita na maaari mong i-redirect ang output ng curl sa /dev/null at gamitin ito upang subukan ang bilis ng koneksyon sa internet, ngunit ang wget command ay may mas madaling basahin at sundin ang transfer bar kaya ang wget ay mas mahusay angkop para sa gawaing iyon.

Pag-save ng Remote na File na may Ibang Pangalan na may curl -o

Paggamit ng lowercase -o na flag ay magbibigay-daan sa iyong tumukoy ng ibang pangalan ng file para sa na-download na file kaysa sa kung paano ito pinangalanan sa remote server. Makakatulong ito na bawasan ang mahabang mga pangalan ng file o lagyan lang ng label ang isang bagay para mas madaling mahanap nang mag-isa. Ang pangkalahatang syntax ay:

curl -o

Halimbawa, kung gusto mong mag-save ng iOS IPSW file na nakita mong nakalista sa mga server ng Apple nang walang mahabang buong pangalan, maaari mong gamitin ang sumusunod:

curl -o iPhone5C-704.ipsw http://appldnld.apple.com/iOS7/031-1828.20131114.P3wE4/iPhone5, 3_7.0.4_11B554a_Restore.ipsw

Ida-download nito ang "iPhone5, 3_7.0.4_11B554a_Restore.ipsw" na file ngunit pinangalanang mas maikli bilang ang mas makabuluhang "iPhone5C-704.ipsw".

Kung mas gusto mong hindi i-save ang file sa kasalukuyang gumaganang direktoryo, tumukoy ng path bilang bahagi ng pangalan ng file tulad nito:

curl -o ~/Desktop/localexample.dmg http://url-to-file/example.dmg

Pag-download ng Maramihang File Kasabay ng curl

cURL ay madaling makapag-download ng maraming file nang sabay-sabay, ang kailangan mo lang gawin ay tumukoy ng higit sa isang URL tulad nito:

curl -O

Para sa mga file na may iba't ibang pangalan, o naka-host sa iba't ibang server, o sa loob ng iba't ibang path ng direktoryo, gamitin ang kumpletong URL, halimbawa:

curl -O http://ftp.gnu.org/gnu/Licenses/fdl-1.1.txt http://ftp.gnu.org/gnu/ Mga Lisensya/lgpl-2.1.txt http://ftp.gnu.org/gnu/GNUinfo/Audio/index.txt

Sa kabilang banda, kung ang mga pangalan ng file na ida-download ay gumagamit ng incremental na pagpapangalan, maaari kang gumamit ng mga bracket para tumukoy ng hanay ng pag-download, tulad nito:

curl -O http://ftp.gnu.org/gnu/Licenses/fd1-1.txt

Ito ay kukuha ng mga file na fdl-1.1.txt, fd1-1.2.txt, at fd1-1.3.txt nang sabay-sabay nang hindi kinakailangang tukuyin ang bawat natatanging URL. Siyempre, gagana lang ito kung ang mga file ay nasa parehong direktoryo nang magkasama at nasa parehong domain.

Authenticating gamit ang curl

Maaari ka ring magpasa ng authentication gamit ang cURL sa pamamagitan ng paggamit ng -u flag:

curl -u user:pass -O ftp://remote_url/file-to-download.zip

Tandaan na ang kasaysayan ng bash ay mag-iimbak ng password sa plain text kapag gumagamit ng -u na may tinukoy na username at password, kaya hindi ito inirerekomenda para sa karamihan ng mga sitwasyon. Maaari mong libutin iyon sa pamamagitan ng paglalagay ng puwang sa harap ng 'curl'.Kung hindi mo gagamitin ang spacebar para i-prefix ang command, malamang na gugustuhin mong alisan ng laman ang history ng command pagkatapos para maging ligtas.

Mga Sinusuportahang curl Protocol at Paggamit Higit pa sa HTTP at FTP

Tulad ng nabanggit kanina, ang paggamit ng cURL ay higit pa sa HTTP at FTP, dahil binabanggit ng curl manual page ang mga karagdagang protocol sa paglalarawan:

Dagdag pa rito, makikita mo na ang curl ay maaari ding gamitin para sa mga kahilingan sa PUT at POST, cookies, proxy, tunnels, resume downloads, at maging sa pagkuha ng impormasyon ng HTTP header o pagpapalit ng user agent (epektibong panggagaya) nang hindi na kailangang gumamit ng nakalaang web browser.

Tulad ng karamihan sa mga utility sa command line, marami ka pang matututunan tungkol sa curl sa pamamagitan ng pagtawag sa naaangkop na man page gamit ang command na 'man curl'.

Paggamit ng cURL upang Mag-download ng Mga Remote na File mula sa Command Line