Wanneer Axios een Node-verzoek met responseType: 'stream' afhandelt, is de body klaar voor gebruik. Het bestand is echter nog niet compleet. Wacht op de overdracht naar de bestemming:

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

Dit gebruikt een al geconfigureerde client. De adapter moet de gekozen proxy of SOCKS-agent ondersteunen; de ingebouwde HTTP-proxyoptie van Axios en een SOCKS-agent zijn afzonderlijke mechanismen. De toepassing levert de URL, de time-outs en het annuleringsbeleid.

Gebruik een tijdelijk pad dat bij deze bewerking hoort. Bepaal hoe botsingen worden afgehandeld voordat u de schrijfstream maakt, zodat opruimen na een fout niet iemands anders bestand verwijdert. Een bewuste hervatting vereist een eigen beleid.

pipeline coördineert lezen en schrijven en meldt hun fout. response.data.pipe(file) aanroepen en meteen succes loggen slaat dat voltooiingspunt over. Een netwerkonderbreking of volle schijf kan optreden nadat een geldig HTTP-antwoord is aangekomen; bewaar de context van het antwoord en de fout die de verwerking stopte.

Nadat de verwachte verwerking is geslaagd, voert u de artefactcontroles van de toepassing uit en publiceert u daarna de definitieve naam. Voltooid betekent dat de stream onder deze API's is verbruikt en geschreven, niet dat het de verwachte release of het verwachte document is. Bij een fout of annulering behoudt of verwijdert u het gedeeltelijke bestand volgens het gekozen hervattingsbeleid. Een annuleringssignaal kan het betreffende verzoek en de stroombewerkingen stoppen; het bepaalt niet wat de toepassing met de uitvoer moet doen.

Gerelateerde artikelen