Ko Axios reši zahtevo Node z responseType: 'stream', je telo pripravljeno za uporabo. Datoteka pa še ni dokončana. Počakajte na prenos na njen cilj:

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

To uporablja že nastavljenega odjemalca. Njegov vmesnik mora podpirati izbrani posrednik ali agenta SOCKS; vgrajena možnost posrednika HTTP v Axiosu in agent SOCKS sta ločena mehanizma. URL, časovne omejitve in politiko preklica zagotovi aplikacija.

Uporabite začasno pot, ki pripada tej operaciji. Odločite se, kako ravnati s trki, preden ustvarite tok pisanja, da čiščenje po napaki ne odstrani tuje datoteke. Namerno nadaljevanje potrebuje svojo politiko.

pipeline usklajuje branje in pisanje ter poroča o njuni napaki. Klic response.data.pipe(file) in takojšnje beleženje uspeha preskoči to točko dokončanja. Prekinitev omrežja ali poln disk se lahko zgodita po tem, ko je prispel veljaven odgovor HTTP; ohranite kontekst odgovora in napako, ki je ustavila obdelavo.

Ko pričakovana obdelava uspe, izvedite preverjanja artefakta aplikacije in nato objavite končno ime. Dokončanje pomeni, da je bil tok porabljen in zapisan po teh API-jih, ne pa da je to pričakovana izdaja ali dokument. Ob napaki ali preklicu delno datoteko obdržite ali odstranite v skladu z izbrano politiko nadaljevanja. Signal preklica lahko ustavi ustrezno zahtevo in operacije toka; ne odloča pa, kaj naj aplikacija naredi z izhodom.

Sorodni članki