I-Axios ibuyise i-stream. Ifayela lisabhalwa.
Lindela kokubili ukufunda kunethiwekhi nokubhala endaweni ekuyiwa kuyo lapho ulanda nge-SOCKS agent usebenzisa i-Axios ku-Node.
Lapho i-Axios ixazulula isicelo se-Node nge-responseType: 'stream', umzimba usulungele ukusetshenziswa. Kodwa ifayela alikaqedi. Lindela ukudluliswa endaweni eliya kuyo:
import { createWriteStream } from 'node:fs';
import { pipeline } from 'node:stream/promises';
const response = await client.get(url, { responseType: 'stream' });
await pipeline(response.data, createWriteStream(partPath));Lokhu kusebenzisa iklayenti eselivele lilungisiwe. I-adaptha yalo kufanele isekele iphroksi noma i-SOCKS agent ekhethiwe; inketho ye-HTTP proxy eyakhelwe ngaphakathi ku-Axios kanye ne-SOCKS agent kuyizindlela ezihlukene. Uhlelo luhlinzeka nge-URL, izikhathi zokuphela kanye nenqubomgomo yokukhansela.
Sebenzisa indlela yesikhashana engokwalokhu kusebenza. Nquma ukuthi kuzobhekwana kanjani nokushayisana ngaphambi kokudala i-stream yokubhala, ukuze ukuhlanza ngemva kokwehluleka kungasusi ifayela lomunye umuntu. Ukuqhubeka ngamabomu kudinga inqubomgomo yako.
I-pipeline ixhumanisa ukufunda nokubhala futhi ibika ukwehluleka kwazo. Ukushayela i-response.data.pipe(file) bese ubhala impumelelo ngokushesha kweqa leyo ndawo yokuqedela. Ukuphazamiseka kwenethiwekhi noma idiski egcwele kungenzeka ngemva kokufika kwempendulo ye-HTTP evumelekile; gcina umongo wempendulo kanye nephutha elamisa ukucutshungulwa.
Ngemva kokuphumelela kokucutshungulwa okulindelekile, yenza izivivinyo ze-artefact zohlelo bese ushicilela igama lokugcina. Ukuqedela kusho ukuthi i-stream isetshenzisiwe futhi yabhalwa ngaphansi kwalezi-API, hhayi ukuthi iyikhishwa noma idokhumenti elindelekile. Lapho kwehluleka noma kukhanselwa, gcina noma susa ifayela eliyingxenye ngokwenqubomgomo yokuqhubeka ekhethiwe. Isignali yokukhansela ingamisa isicelo kanye nokusebenza kwe-stream okuhambisanayo; ayinqumi ukuthi uhlelo kufanele lwenzenjani ngomphumela.