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 s Axiosom u Nodeu.
Kada Axios riješi Node zahtjev s responseType: 'stream', tijelo je spremno za konzumaciju. Datoteka još nije završ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ć konfiguriran klijent. Njegov adapter mora podržavati odabrani proxy ili SOCKS agent; Axiosova ugrađena HTTP proxy opcija i SOCKS agent su odvojeni mehanizmi. Aplikacija osigurava URL, vremenska ograničenja i politiku otkazivanja.
Koristite privremenu putanju koja pripada ovoj operaciji. Odlučite kako postupati s kolizijama prije stvaranja toka za pisanje, kako čišćenje nakon neuspjeha ne bi uklonilo tuđu datoteku. Namjerno nastavljanje zahtijeva vlastitu politiku.
pipeline koordinira čitanje i pisanje i prijavljuje njihov neuspjeh. Pozivanje response.data.pipe(file) i trenutno bilježenje uspjeha preskače tu točku završetka. Prekid mreže ili pun disk mogu nastupiti nakon što je valjan HTTP odgovor stigao; 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. Završ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 djelomičnu datoteku prema odabranoj politici nastavljanja. Signal otkazivanja može zaustaviti odgovarajući zahtjev i operacije toka; on ne odlučuje što aplikacija treba raditi s izlazom.