Menangani download yang terputus: melanjutkannya dengan -c dan peran file kontrol .aria2, membatasi kecepatan dengan --max-download-limit, membatasi jumlah download bersamaan, serta pengantar kontrol pause-resume lewat RPC.

Hingga episode 4, semua download kalian berjalan lancar — mungkin terlalu lancar untuk dunia nyata. Kenyataannya: koneksi putus di tengah jalan, laptop tertutup, kuota habis, dan download 10GB tidak bisa menunggu kalian menatap layar. Episode ini adalah tentang ketahanan dan kendali — membuat aria2 melanjutkan download yang terputus, membatasi kecepatannya, dan mulai mengendalikannya dari jarak jauh.
Bayangkan kurir profesional: ketika truknya mogok di tengah jalan, ia tidak mengulang perjalanan dari awal — ia melanjutkan dari kilometer terakhir, mengatur kecepatannya agar bahan bakar cukup, dan melaporkan posisi ke pusat kendali. Itulah tepatnya yang akan kita bangun pada aria2 di episode ini — pola yang intinya aria2c -c URL.
-cSkenario paling umum: download terputus di tengah jalan. Aria2 sudah meninggalkan file parsial di disk beserta file kontrol .aria2. Daripada memulai dari nol, aria2 bisa melanjutkan dari posisi terakhir dengan opsi -c (atau --continue):
aria2c -c https://example.com/backup.isoBeginilah cara kerjanya: aria2 membaca file kontrol .aria2 untuk tahu segmen mana yang sudah selesai, lalu mengirim request dengan header Range ke server. Server yang mendukung resume menjawab 206 Partial Content dan mengirim hanya bagian yang tersisa; server yang tidak mendukungnya menjawab 200 dengan isi penuh, dan aria2 terpaksa mulai dari awal.
Important
-c tidak pernah merugikan: jika file belum ada, ia berperilaku seperti download biasa. Karena itu, biasakan selalu menambahkan -c pada download file besar — satu huruf yang menyelamatkan jam kerja.
Kita sudah mengenal file kontrol .aria2 di episode 2. Di episode 5 ini perannya jadi jelas: ia adalah buku catatan kemajuan yang membuat resume mungkin. Tanpa file ini, aria2 tidak punya cara tahu seberapa jauh download sudah berjalan — semua segmen dianggap kosong dan diunduh ulang.
Praktik yang perlu diingat:
backup.iso dan backup.iso.aria2 di direktori yang sama..aria2 jika masih ingin melanjutkan download..aria2 otomatis hilang — tanda yang bisa dipakai script untuk mengecek kelengkapan.Tidak semua download boleh melaju kencang. Aria2 menyediakan dua opsi batas kecepatan:
| Opsi | Fungsi |
|---|---|
--max-download-limit=SPEED | Batas kecepatan download (misal 1M, 500K) |
--max-upload-limit=SPEED | Batas kecepatan upload — penting saat seeding BitTorrent |
aria2c --max-download-limit=1M https://example.com/big-file.isoKenapa membatasi kecepatan? Karena men-download file besar bisa menyedot seluruh bandwidth dan mengganggu layanan lain di server yang sama — SSH jadi lambat, aplikasi web nge-lag. Batas kecepatan seperti mengatur jarak aman di jalan tol: download tetap jalan, tapi tidak membahayakan pengguna jalan lain. Suffix K, M, dan G masing-masing berarti kilo, mega, dan giga byte per detik.
--max-concurrent-downloadsKetika kalian men-download banyak file sekaligus lewat input file, aria2 secara default menjalankan hingga 5 download secara bersamaan. Opsi -j (atau --max-concurrent-downloads) mengatur angka ini:
aria2c -j 3 -i urls.txtIni bukan hanya soal kecepatan, tapi juga kewajaran: men-download 50 file dengan 16 koneksi masing-masing bisa dianggap kasar oleh server. Batas konkurensi yang masuk akal menjaga hubungan baik dengan sumber daya yang kalian pakai.
Inilah pembeda aria2 yang sudah kita singgung di episode 1: download bisa dikendalikan dari luar. Nyalakan aria2 sebagai RPC server dengan sebuah rahasia untuk otentikasi:
aria2c --enable-rpc --rpc-secret=rahasia-sayaSekarang server aria2 mendengarkan di port 6800. Kalian bisa meminta pause semua download lewat JSON-RPC — misalnya sebelum mematikan server — dengan curl dan jq:
curl -s http://localhost:6800/jsonrpc -d '{"jsonrpc":"2.0","id":"1","method":"aria2.pauseAll","params":["token:rahasia-saya"]}' | jqUntuk melanjutkannya lagi, ganti method menjadi aria2.unpauseAll. Download yang di-pause bisa dilanjutkan kapan saja — dan kombinasi pause dengan -c membuat proses ini benar-benar andal.
Tip
Contoh di atas adalah intisari pola RPC: method aria2.xxx, params berisi token dan argumen. Di episode 13 hingga 15 kita akan membedah RPC secara menyeluruh — termasuk otentikasi, aria2.pause, aria2.unpause, dan kontrol per-GID — serta memasang web UI seperti AriaNg di atas server ini.
Gabungan semua pelajaran episode ini dalam satu perintah yang realistis:
aria2c -c -j 4 --max-download-limit=2M -i urls.txt --log=/tmp/aria2.logBacanya: lanjutkan download yang terputus (-c), maksimal 4 download bersamaan (-j 4), batasi kecepatan 2 MB/detik (--max-download-limit=2M), ambil daftar dari urls.txt (-i), dan catat semuanya di log (--log). Ini pola yang cukup solid untuk dijadwalkan di cron atau systemd timer — topik yang kita bahas di episode production nanti.
Menghapus file .aria2. Semua catatan kemajuan hilang dan download diulang dari nol. Perlakukan file kontrol seperti barang berharga selama download belum selesai.
-c pada server tanpa dukungan Range. Jika server menjawab 200 alih-alih 206, resume tidak terjadi — batasan server, bukan bug aria2.
Batas kecepatan terlalu rendah. --max-download-limit=10K pada file 1GB akan berjalan berhari-hari. Sesuaikan dengan target waktu yang realistis.
-j terlalu besar pada batch banyak file. Ratusan download serentak membebani server dan jaringan. Mulai dari 3 sampai 5, lalu naikkan bertahap.
Pada episode 5 ini kalian telah melengkapi aria2 dengan ketahanan dan kendali: melanjutkan download yang terputus dengan -c dan memahami peran file kontrol .aria2, membatasi kecepatan dengan --max-download-limit dan --max-upload-limit, membatasi jumlah download bersamaan dengan -j, serta mengenal pola pause-resume via RPC menggunakan curl dan jq.
Inti yang harus dibawa pulang:
-c melanjutkan download dari posisi terakhir; butuh dukungan Range dari server (206 Partial Content)..aria2 adalah kunci resume — jangan dihapus atau di-rename sebelum download selesai.--max-download-limit dan --max-upload-limit membatasi kecepatan; -j membatasi konkurensi.Di episode 6 selanjutnya kita akan membahas batch download & input file — men-download banyak file sekaligus dari sebuah daftar, memakai opsi per-download dalam input file, dan menggabungkannya dengan -x, -s, -c, serta -j untuk job batch yang andal. Sampai jumpa di episode 6!