Meta Axios issolvi talba Node b' responseType: 'stream', il-ġisem ikun lest biex jiġi kkunsmat. Iżda l-fajl għadu mhux komplut. Stenna t-trasferiment lejn id-destinazzjoni tiegħu:

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

Dan juża klijent diġà kkonfigurat. L-adapter tiegħu jrid jappoġġa l-proxy jew l-aġent SOCKS magħżul; l-għażla tal-proxy HTTP integrata ta' Axios u aġent SOCKS huma mekkaniżmi separati. L-applikazzjoni tipprovdi l-URL, il-limiti ta' żmien u l-politika tal-kanċellazzjoni.

Uża mogħdija temporanja li tappartjeni lil din l-operazzjoni. Iddeċiedi kif tittratta l-kolliżjonijiet qabel ma toħloq is-stream tal-kitba, sabiex it-tindif wara falliment ma jneħħix il-fajl ta' ħaddieħor. Ripresa intenzjonata teħtieġ politika tagħha.

pipeline jikkoordina l-qari u l-kitba u jirrapporta l-falliment tagħhom. Sejħa lil response.data.pipe(file) u tirreġistra s-suċċess minnufih taqbeż dak il-punt tat-tlestija. Interruzzjoni tan-netwerk jew disk mimli jistgħu jiġru wara li tkun waslet risposta HTTP valida; żomm il-kuntest tar-risposta u l-iżball li waqqaf l-ipproċessar.

Wara li l-ipproċessar mistenni jirnexxi, wettaq il-verifiki tal-artefatt tal-applikazzjoni u mbagħad ippubblika l-isem finali. It-tlestija tfisser li s-stream ġie kkunsmat u miktub taħt dawn l-API, mhux li hija r-rilaxx jew id-dokument mistenni. F'każ ta' falliment jew kanċellazzjoni, żomm jew neħħi l-fajl parzjali skont il-politika tar-ripresa magħżula. Sinjal ta' kanċellazzjoni jista' jwaqqaf it-talba u l-operazzjonijiet tas-stream rilevanti; ma jiddeċidix x'għandha tagħmel l-applikazzjoni mal-output.

Artikli relatati