Axios je vratio stream. Datoteka se još uvijek piše.
Sačekajte i čitanje s mreže i upis na odredište kada preuzimate preko SOCKS agenta sa Axiosom u Nodeu.
Kada Axios riješi Node zahtjev sa responseType: 'stream', tijelo je spremno za konzumaciju. Datoteka još nije dovršena. Sačekajte prijenos na odredište:
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));Ovo koristi već konfigurisanog klijenta. Njegov adapter mora podržavati izabrani proxy ili SOCKS agent; Axiosova ugrađena HTTP proxy opcija i SOCKS agent su odvojeni mehanizmi. Aplikacija obezbjeđuje URL, vremenska ograničenja i politiku otkazivanja.
Koristite privremenu putanju koja pripada ovoj operaciji. Odlučite kako postupati sa sudarima prije stvaranja toka za pisanje, kako čišćenje nakon neuspjeha ne bi uklonilo tuđu datoteku. Namjerno nastavljanje zahtijeva vlastitu politiku.
pipeline usklađuje čitanje i pisanje i prijavljuje njihov neuspjeh. Pozivanje response.data.pipe(file) i trenutno bilježenje uspjeha preskače tu točku dovršetka. Prekid mreže ili pun disk mogu se dogoditi nakon što je stigao valjan HTTP odgovor; sačuvajte kontekst odgovora i grešku koja je zaustavila obradu.
Nakon što očekivana obrada uspije, izvršite provjere artefakta aplikacije i zatim objavite konačno ime. Dovršetak znači da je stream konzumiran i zapisan pod ovim API-jima, a ne da je to očekivano izdanje ili dokument. U slučaju neuspjeha ili otkazivanja zadržite ili uklonite djelimičnu datoteku prema izabranoj politici nastavljanja. Signal otkazivanja može zaustaviti odgovarajući zahtjev i operacije toka; on ne odlučuje šta aplikacija treba raditi s izlazom.