Cando Axios resolve unha petición Node con responseType: 'stream', o corpo está listo para consumir. O ficheiro aínda non está completo. Espere o traslado ao seu destino:

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

Isto usa un cliente xa configurado. O seu adaptador debe admitir o proxy ou o axente SOCKS escollido; a opción de proxy HTTP integrada de Axios e un axente SOCKS son mecanismos distintos. A aplicación fornece a URL, os tempos de espera e a política de cancelación.

Use unha ruta temporal propiedade desta operación. Decida como tratar as colisións antes de crear o fluxo de escritura, para que a limpeza tras un fallo non elimine o ficheiro doutra persoa. Unha reanudación deliberada necesita a súa propia política.

pipeline coordina lectura e escritura e informa do seu fallo. Chamar response.data.pipe(file) e rexistrar o éxito de inmediato omite ese punto de finalización. Unha interrupción de rede ou un disco cheo poden ocorrer despois de que chegase unha resposta HTTP válida; conserve o contexto da resposta e o erro que detivo o procesamento.

Unha vez que o procesamento agardado teña éxito, realice as comprobacións de artefacto da aplicación e logo publique o nome final. Completar significa que o fluxo se consumiu e escribiu con estas API, non que sexa a versión ou o documento agardados. En caso de fallo ou cancelación, conserve ou elimine o ficheiro parcial segundo a política de reanudación escollida. Un sinal de cancelación pode deter a petición e as operacións de fluxo correspondentes; non decide que debe facer a aplicación coa saída.

Artigos relacionados