Axios huet e Stream zréckginn. D'Datei gëtt nach geschriwwen.
Waart souwuel op d'Liesen aus dem Netz wéi och op d'Schreiwen op den Zil, wann Dir mat Axios an Node iwwer e SOCKS-Agent erofluedt.
Wann Axios eng Node-Ufro mat responseType: 'stream' opléisst, ass de Body prett fir ze verbrauchen. D'Datei ass awer nach net fäerdeg. Waart op den Transfert op hiren Zil:
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));Dëst benotzt e schonn konfiguréierte Client. Säin Adapter muss de gewielte Proxy oder SOCKS-Agent ënnerstëtzen; dem Axios seng agebaut HTTP-Proxy-Optioun an e SOCKS-Agent si getrennte Mechanismen. D'Applikatioun liwwert d'URL, d'Zäitlimitten an d'Annuléierungspolitik.
Benotzt en temporäre Pad, deen zu dëser Operatioun gehéiert. Entscheet, wéi Kollisioune behandelt ginn, ier Dir de Schreiwen-Stream erstellt, sou datt d'Ausraumen no engem Feeler net engem aneren seng Datei ewechhëlt. Eng bewosst Fortsetzung brauch hir eegen Politik.
pipeline koordinéiert Liesen a Schreiwen a mëllt hire Feeler. response.data.pipe(file) opzeruffen an direkt Erfolleg ze loggen iwwerspréngt dee Ofschloss-Punkt. En Netzwierkofbroch oder eng voll Scheif kënnen optrieden, nodeems eng gülteg HTTP-Antwert ukomm ass; behält den Antwertskontext an de Feeler, deen d'Veraarbechtung gestoppt huet.
Nodeems déi erwaart Veraarbechtung gelungen ass, maacht d'Artefaktkontrollen vun der Applikatioun an publizéiert duerno den endgültegen Numm. Fäerdeg heescht, datt de Stream ënner dësen APIë verbraucht a geschriwwe gouf, net datt et déi erwaart Verëffentlechung oder Dokument ass. Bei Feeler oder Annuléierung behält oder läscht Dir déi deelweis Datei no der gewielter Fortsetzungspolitik. En Annuléierungssignal kann déi betreffend Ufro an d'Streamoperatiounen stoppen; et entscheet net, wat d'Applikatioun mat der Ausgab maache soll.