Axios devolvió un stream. El archivo todavía se está escribiendo.
Espere tanto la lectura de la red como la escritura en el destino al descargar con Axios en Node a través de un agente SOCKS.
Cuando Axios resuelve una petición de Node con responseType: 'stream', el cuerpo está listo para consumirse. El archivo aún no está completo. Espere el traspaso a su 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));Esto usa un cliente ya configurado. Su adaptador debe admitir el proxy o el agente SOCKS elegido; la opción de proxy HTTP integrada de Axios y un agente SOCKS son mecanismos distintos. La aplicación aporta la URL, los tiempos de espera y la política de cancelación.
Use una ruta temporal propiedad de esta operación. Decida cómo tratar las colisiones antes de crear el flujo de escritura, para que la limpieza tras un fallo no elimine el archivo de otra persona. Una reanudación deliberada necesita su propia política.
pipeline coordina la lectura y la escritura e informa de su fallo. Llamar a response.data.pipe(file) y registrar el éxito de inmediato omite ese punto de finalización. Una interrupción de red o un disco lleno pueden ocurrir después de que haya llegado una respuesta HTTP válida; conserve el contexto de la respuesta y el error que detuvo el procesamiento.
Cuando el procesamiento esperado tenga éxito, realice las comprobaciones de artefacto de la aplicación y luego publique el nombre final. Completar significa que el stream se consumió y se escribió con estas API, no que sea la versión o el documento esperados. Si falla o se cancela, conserve o elimine el archivo parcial según la política de reanudación elegida. Una señal de cancelación puede detener la petición y las operaciones de flujo correspondientes; no decide qué debe hacer la aplicación con la salida.