Wakati Axios inatatua ombi la Node kwa responseType: 'stream', mwili uko tayari kutumiwa. Lakini faili bado halijakamilika. Subiri uhamishaji hadi mahali panapokwenda:

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));

Hii inatumia mteja aliyewekwa tayari. Adapta yake lazima iunge mkono proksi au wakala wa SOCKS uliochaguliwa; chaguo la proksi la HTTP lililojengwa ndani ya Axios na wakala wa SOCKS ni mifumo tofauti. Programu hutoa URL, mipaka ya muda na sera ya kughairi.

Tumia njia ya muda inayomilikiwa na operesheni hii. Amua jinsi ya kushughulikia migongano kabla ya kuunda stream ya uandishi, ili usafishaji baada ya kushindwa usiondoe faili la mtu mwingine. Kuanza upya kwa kusudi kunahitaji sera yake.

pipeline huratibu usomaji na uandishi na kuripoti kushindwa kwao. Kuita response.data.pipe(file) na kurekodi mafanikio mara moja kunaruka hatua hiyo ya kukamilika. Kukatika kwa mtandao au diski iliyojaa kunaweza kutokea baada ya jibu halali la HTTP kuwasili; hifadhi muktadha wa jibu na kosa lililosimamisha uchakataji.

Baada ya uchakataji uliotarajiwa kufanikiwa, fanya ukaguzi wa artefact wa programu kisha uchapishhe jina la mwisho. Kukamilika humaanisha kuwa stream ilitumiwa na kuandikwa chini ya API hizi, si kwamba ni toleo au hati inayotarajiwa. Ikishindikana au kughairiwa, hifadhi au ondoa faili la sehemu kulingana na sera ya kuanza upya iliyochaguliwa. Ishara ya kughairi inaweza kusimamisha ombi na shughuli za stream zinazohusika; haiamui programu ifanye nini na matokeo.

Makala zinazohusiana