När Axios löser en Node-förfrågan med responseType: 'stream' är brödtexten redo att användas. Filen är dock inte färdig. Vänta på överföringen till dess mål:

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));

Detta använder en redan konfigurerad klient. Dess adapter måste stödja den valda proxyn eller SOCKS-agenten; Axios inbyggda HTTP-proxyalternativ och en SOCKS-agent är separata mekanismer. Programmet tillhandahåller URL:en, tidsgränserna och avbrottsprincipen.

Använd en tillfällig sökväg som tillhör den här åtgärden. Bestäm hur kollisioner hanteras innan du skapar skrivströmmen, så att städning efter ett fel inte tar bort någon annans fil. En avsiktlig återupptagning behöver sin egen princip.

pipeline samordnar läsning och skrivning och rapporterar deras fel. Att anropa response.data.pipe(file) och logga framgång direkt hoppar över den slutpunkten. Ett nätavbrott eller en full disk kan inträffa efter att ett giltigt HTTP-svar har anlänt; behåll svarets sammanhang och felet som stoppade bearbetningen.

När den förväntade bearbetningen har lyckats utför du programmets artefaktkontroller och publicerar sedan det slutliga namnet. Klart betyder att strömmen förbrukades och skrevs under dessa API:er, inte att den är den förväntade utgåvan eller dokumentet. Vid fel eller avbrott behåller eller tar du bort delfilen enligt den valda återupptagningsprincipen. En avbrottssignal kan stoppa den aktuella förfrågan och strömoperationerna; den avgör inte vad programmet ska göra med utdata.

Relaterade artiklar