Learning Center
Linux-systeem

Hoe bestanden downloaden met cURL

20 okt 2025
Emmanuel Oyibo
Emmanuel Oyibo

Het downloaden van inhoud van externe servers is een veelvoorkomende taak voor zowel beheerders als ontwikkelaars. Hoewel er veel tools voor deze taak bestaan, onderscheidt cURL zich door zijn flexibiliteit en eenvoud. Het is een opdrachtregelprogramma dat protocollen zoals HTTP, HTTPS, FTP en SFTP ondersteunt, wat het onmisbaar maakt voor automatisering, scripting en efficiënte bestandsoverdrachten.

Je kunt cURL rechtstreeks op je computer uitvoeren om bestanden op te halen. Je kunt het ook in scripts opnemen om gegevensbeheer te stroomlijnen, waardoor handmatige fouten en inspanning worden verminderd. Deze gids laat verschillende manieren zien om bestanden te downloaden met cURL. Aan de hand van deze voorbeelden leer je hoe je omgaat met omleidingen, bestanden hernoemt en de voortgang van downloads bewaakt. Aan het einde zul je cURL zelfverzekerd kunnen gebruiken voor taken op servers of in cloudomgevingen.

Basis cURL-commando voor het downloaden van bestanden
Link kopiëren

Het commando curl werkt met meerdere protocollen, maar wordt voornamelijk gebruikt met HTTP en HTTPS om verbinding te maken met webservers. Indien nodig kan het ook communiceren met FTP- of SFTP-servers.

Standaard haalt cURL een bron op van een opgegeven URL en toont deze in je terminal (standaarduitvoer). Dit is handig om de inhoud van een bestand te bekijken zonder het op te slaan, vooral bij kleine tekstbestanden.

Voorbeeld: om de inhoud van een tekstbestand te bekijken dat wordt gehost op https://example.com/file.txt, voer je uit:

curl https://example.com/file.txt

Voor korte tekstbestanden is deze methode geschikt. Voor grote of binaire bestanden kan het scherm echter worden overspoeld met onleesbare gegevens, dus meestal wil je ze opslaan in plaats van weergeven.

Externe bestanden opslaan
Link kopiëren

Vaak is het hoofddoel om het gedownloade bestand lokaal op te slaan in plaats van het in de terminal te bekijken. cURL maakt dit eenvoudig met de optie -O (hoofdletter O), die de originele bestandsnaam behoudt.

curl -O https://example.com/file.txt

Dit haalt file.txt op en slaat het op in de huidige map met dezelfde naam. Deze methode is snel en behoudt de oorspronkelijke bestandsnaam, wat handig kan zijn als de naam betekenisvol is.

Een andere bestandsnaam kiezen
Link kopiëren

Soms is het belangrijk om het gedownloade bestand een andere naam te geven om conflicten te vermijden of een duidelijk naamgevingssysteem te hanteren. Gebruik in dat geval de optie -o (kleine o):

curl -o mijnbestand.txt https://example.com/file.txt

Hier downloadt cURL het externe bestand file.txt maar slaat het lokaal op als mijnbestand.txt. Dit helpt bij het organiseren van bestanden en voorkomt onbedoelde overschrijvingen. Dit is vooral nuttig in scripts die beschrijvende bestandsnamen vereisen.

Omleidingen volgen
Link kopiëren

Wanneer een bestand wordt opgevraagd, kan de server de client instrueren om naar een andere URL te gaan. Het begrijpen en volgen van omleidingen is essentieel voor succesvolle downloads.

Waarom omleidingen belangrijk zijn
Link kopiëren

Omleidingen worden vaak gebruikt op herschikte websites, verplaatste bestanden of mirrorlinks. Zonder ondersteuning voor omleidingen stopt cURL na een “verplaatst”-reactie, en ontvang je het bestand niet.

Gebruik van -L of --location
Link kopiëren

Om cURL een reeks omleidingen te laten volgen tot het einddoel, gebruik je -L (of --location):

curl -L -O https://example.com/redirected-file.jpg

Hierdoor kan cURL het juiste bestand ophalen, zelfs als de oorspronkelijke URL elders naar verwijst. Als je -L weglaat, zal cURL alleen het omleidingsbericht weergeven en stoppen, wat problematisch is voor sites met meerdere omleidingen.

Meerdere bestanden downloaden
Link kopiëren

cURL kan ook meerdere bestandsdownloads tegelijk verwerken, zodat je het commando niet herhaaldelijk hoeft uit te voeren.

Gebruik van accolades en patronen
Link kopiëren

Als bestandsnamen een patroon delen, kun je accolades {} gebruiken om ze beknopt op te geven:

curl -O https://example.com/files/{file1.jpg,file2.jpg,file3.jpg}

cURL haalt elk bestand opeenvolgend op, wat handig is voor geautomatiseerde workflows.

Gebruik van reeksen
Link kopiëren

Voor een reeks genummerde of alfabetisch gelabelde bestanden kun je een bereik opgeven tussen rechte haken:

curl -O https://example.com/files/file[1-5].jpg

cURL doorloopt automatisch de bestanden file1.jpg tot file5.jpg. Dit is ideaal voor reeksen bestanden met consistente namen.

Meerdere downloads koppelen
Link kopiëren

Als je verschillende URL’s hebt voor elk bestand, kun je ze aan elkaar koppelen:

curl -O https://example1.com/file1.jpg -O https://example2.com/file2.jpg

Met deze aanpak downloadt cURL file1.jpg van de eerste site en file2.jpg van de tweede, zonder meerdere commando’s uit te voeren.

Snelheidsbeperking en time-outs
Link kopiëren

In sommige situaties wil je mogelijk de downloadsnelheid beperken of voorkomen dat cURL te lang wacht op een niet-reagerende server.

Beheer van bandbreedte
Link kopiëren

Om te voorkomen dat je netwerk overbelast raakt of om trage omstandigheden te simuleren, kun je de downloadsnelheid beperken met --limit-rate:

curl --limit-rate 2M -O https://example.com/bigfile.zip

2M staat voor 2 megabyte per seconde. Je kunt ook K voor kilobytes of G voor gigabytes gebruiken.

Time-outs
Link kopiëren

Als een server te traag is, kun je cURL na een bepaalde tijd laten stoppen. De optie --max-time doet precies dat:

curl --max-time 60 -O https://example.com/file.iso

Hier stopt cURL na 60 seconden, wat handig is in scripts die snel moeten mislukken.

Stille en uitgebreide modus
Link kopiëren

cURL kan de uitvoer aanpassen om minimale of uitgebreide informatie weer te geven.

Stille downloads
Link kopiëren

Voor batchtaken of cronjobs waarbij je geen voortgangsbalk nodig hebt, gebruik je -s (of --silent):

curl -s -O https://example.com/file.jpg

Dit verbergt voortgang en fouten, wat zorgt voor schonere logbestanden. Probleemoplossing is echter moeilijker bij een stille fout.

Uitgebreide modus
Link kopiëren

In tegenstelling hiermee geeft -v (of --verbose) gedetailleerde informatie over verzoeken en antwoorden:

curl -v https://example.com

De uitgebreide uitvoer is waardevol bij het oplossen van problemen zoals ongeldige SSL-certificaten of onjuiste omleidingen.

Authenticatie en beveiliging
Link kopiëren

Sommige downloads vereisen inloggegevens of een beveiligde verbinding.

HTTP/FTP-authenticatie
Link kopiëren

Wanneer een server een gebruikersnaam en wachtwoord vereist, gebruik je -u:

curl -u username:password -O https://example.com/protected/file.jpg

Het direct opnemen van inloggegevens kan riskant zijn, omdat ze zichtbaar kunnen zijn in logboeken of proceslijsten. Overweeg om omgevingsvariabelen of .netrc-bestanden te gebruiken voor veiliger beheer.

HTTPS en certificaten
Link kopiëren

Standaard controleert cURL SSL-certificaten. Als het certificaat ongeldig is, blokkeert cURL de overdracht. Je kunt deze controle overslaan met -k of --insecure, maar dat brengt beveiligingsrisico’s met zich mee. Gebruik indien mogelijk een vertrouwde certificaatautoriteit om geverifieerde verbindingen te behouden.

Gebruik van een proxy
Link kopiëren

In sommige omgevingen moet het verkeer via een proxyserver lopen voordat het de bestemming bereikt.

Downloaden via een proxy
Link kopiëren

Gebruik de optie -x of --proxy om de proxy te specificeren:

curl -x http://proxy_host:proxy_port -O https://example.com/file.jpg

Vervang proxy_host en proxy_port door de juiste gegevens. cURL stuurt het verzoek naar de proxy, die vervolgens het bestand namens jou ophaalt.

Proxy-authenticatie
Link kopiëren

Als je proxy inloggegevens vereist, voeg deze dan toe aan de URL:

curl -x https://proxy.example.com:8080 -U myuser:mypassword -O https://example.com/file.jpg

Ook hier geldt: het opslaan van gevoelige gegevens in platte tekst is gevaarlijk. Gebruik in plaats daarvan omgevingsvariabelen of configuratiebestanden.

Downloadvoortgang volgen
Link kopiëren

Het volgen van de voortgang is belangrijk bij grote bestanden of trage verbindingen.

Standaard voortgangsmeter
Link kopiëren

Standaard toont cURL een voortgangsmeter met de totale grootte, overdrachtsnelheid en geschatte resterende tijd. Bijvoorbeeld:

 % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1256  100  1256    0     0   2243      0 --:--:-- --:--:-- --:--:--  2246

Dit overzicht helpt je te beoordelen hoeveel er nog resteert en of de overdrachtsnelheid acceptabel is.

Compacte voortgangsbalk
Link kopiëren

Als je minder details wilt, voeg dan -# toe:

curl -# -O https://example.com/largefile.iso

Een eenvoudigere balk toont de algemene voortgang in procenten. Deze is overzichtelijker, maar bevat geen gedetailleerde statistieken zoals de huidige snelheid.

Voortgang registreren in scripts
Link kopiëren

Wanneer je cURL in scripts gebruikt, wil je de voortgangsgegevens mogelijk vastleggen. Normaal gesproken stuurt cURL deze informatie naar stderr, dus je kunt dit omleiden:

curl -# -O https://example.com/largefile.iso 2>progress.log

Hier bevat progress.log de statusupdates, die je later kunt analyseren of opslaan.

Conclusie
Link kopiëren

cURL is een flexibel opdrachtregelprogramma voor het downloaden van bestanden via verschillende protocollen en omgevingen. Of je nu complexe omleidingen moet afhandelen, bestanden dynamisch wilt hernoemen of de bandbreedte wilt beperken – cURL biedt alle nodige opties. Door de belangrijkste parameters en modi onder de knie te krijgen, kun je cURL naadloos integreren in je dagelijkse workflow voor scripting, automatisering en efficiënte bestandsoverdrachten.