Când Axios rezolvă o cerere Node cu responseType: 'stream', corpul este gata de consumat. Fișierul însă nu este încă complet. Așteptați transferul către destinația sa:

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

Aceasta folosește un client deja configurat. Adaptorul său trebuie să accepte proxy-ul sau agentul SOCKS ales; opțiunea de proxy HTTP încorporată în Axios și un agent SOCKS sunt mecanisme separate. Aplicația furnizează URL-ul, termenele limită și politica de anulare.

Folosiți o cale temporară care aparține acestei operațiuni. Decideți cum tratați coliziunile înainte de a crea fluxul de scriere, astfel încât curățarea după o eroare să nu elimine fișierul altcuiva. O reluare intenționată are nevoie de propria politică.

pipeline coordonează citirea și scrierea și raportează eșecul lor. Apelarea response.data.pipe(file) și înregistrarea imediată a succesului omite acel punct de finalizare. O întrerupere de rețea sau un disc plin pot apărea după ce a sosit un răspuns HTTP valid; păstrați contextul răspunsului și eroarea care a oprit procesarea.

După ce procesarea așteptată reușește, efectuați verificările de artefact ale aplicației și apoi publicați numele final. Finalizarea înseamnă că fluxul a fost consumat și scris în cadrul acestor API, nu că este versiunea sau documentul așteptat. La eșec sau anulare, păstrați sau eliminați fișierul parțial conform politicii de reluare alese. Un semnal de anulare poate opri cererea și operațiunile de flux relevante; nu decide ce trebuie să facă aplicația cu ieșirea.

Articole similare