Axios returnerte en strøm. Filen skrives fortsatt.
Vent på både nettverkslesing og skriving til destinasjonen når du laster ned via en SOCKS-agent med Axios i Node.
Når Axios løser en Node-forespørsel med responseType: 'stream', er kroppen klar til å brukes. Filen er likevel ikke ferdig. Vent på overføringen til destinasjonen:
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));Dette bruker en allerede konfigurert klient. Adapteren må støtte proxyen eller SOCKS-agenten som er valgt; Axios' innebygde HTTP-proxyvalg og en SOCKS-agent er separate mekanismer. Applikasjonen leverer URL-en, tidsgrensene og avbrytelsespolicyen.
Bruk en midlertidig sti som tilhører denne operasjonen. Bestem hvordan kollisjoner håndteres før du oppretter skrivestrømmen, slik at opprydding etter en feil ikke fjerner andres fil. En bevisst gjenopptakelse trenger sin egen policy.
pipeline koordinerer lesing og skriving og rapporterer feilen deres. Å kalle response.data.pipe(file) og logge suksess umiddelbart hopper over det fullføringspunktet. Et nettverksavbrudd eller full disk kan skje etter at et gyldig HTTP-svar har ankommet; ta vare på svarkonteksten og feilen som stoppet behandlingen.
Når den forventede behandlingen har lyktes, utfør applikasjonens artefaktkontroller og publiser deretter det endelige navnet. Fullført betyr at strømmen ble brukt og skrevet under disse API-ene, ikke at den er den forventede utgivelsen eller dokumentet. Ved feil eller avbrudd beholder eller fjerner du delfilen etter den valgte gjenopptakelsespolicyen. Et avbrytelsessignal kan stoppe den aktuelle forespørselen og strømoperasjonene; det avgjør ikke hva applikasjonen skal gjøre med utdataene.