Axios returnerede en stream. Filen skrives stadig.
Vent på både netværkslæsning og skrivning til destinationen, når du henter via en SOCKS-agent med Axios i Node.
Når Axios afslutter en Node-anmodning med responseType: 'stream', er kroppen klar til at blive forbrugt. Filen er endnu ikke færdig. Afvent overførslen til dens destination:
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 bruger en allerede konfigureret klient. Dens adapter skal understøtte den valgte proxy eller SOCKS-agent; Axios' indbyggede HTTP-proxyindstilling og en SOCKS-agent er separate mekanismer. Applikationen leverer URL, tidsgrænser og annulleringspolitik.
Brug en midlertidig sti, som denne operation ejer. Vælg, hvordan kollisioner håndteres, før du opretter skrivestrømmen, så oprydning efter en fejl ikke fjerner en andens fil. En bevidst genoptagelse kræver sin egen politik.
pipeline koordinerer læsning og skrivning og rapporterer deres fejl. At kalde response.data.pipe(file) og straks logge succes springer det færdiggørelsespunkt over. En netværksafbrydelse eller en fuld disk kan opstå, efter at et gyldigt HTTP-svar er ankommet; bevar svar-konteksten og fejlen, der stoppede behandlingen.
Når den afventede behandling er lykkedes, udfør applikationens artefaktkontroller, og udgiv derefter det endelige navn. Færdig betyder, at streamen blev forbrugt og skrevet under disse API'er, ikke at den er den forventede udgivelse eller det forventede dokument. Ved fejl eller annullering bevares eller fjernes den delvise fil efter den valgte genoptagelsespolitik. Et annulleringssignal kan stoppe den relevante anmodning og stream-operationer; det afgør ikke, hvad applikationen skal gøre med outputtet.