O Axios retornou um stream. O ficheiro ainda está a ser escrito.
Aguarde tanto a leitura da rede como a escrita no destino ao transferir através de um agente SOCKS com Axios em Node.
Quando o Axios resolve um pedido Node com responseType: 'stream', o corpo está pronto a consumir. O ficheiro, porém, ainda não está completo. Aguarde a transferência para o 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 um cliente já configurado. O adaptador tem de suportar o proxy ou o agente SOCKS escolhido; a opção de proxy HTTP incorporada do Axios e um agente SOCKS são mecanismos distintos. A aplicação fornece o URL, os tempos limite e a política de cancelamento.
Use um caminho temporário pertencente a esta operação. Decida como tratar as colisões antes de criar o stream de escrita, para que a limpeza após uma falha não remova o ficheiro de outra pessoa. A retoma intencional exige uma política própria.
pipeline coordena a leitura e a escrita e comunica a respetiva falha. Chamar response.data.pipe(file) e registar o sucesso de imediato ignora esse ponto de conclusão. Uma interrupção de rede ou um disco cheio podem ocorrer depois de chegar uma resposta HTTP válida; guarde o contexto da resposta e o erro que parou o processamento.
Depois de o processamento esperado ter êxito, efetue as verificações de artefacto da aplicação e só então publique o nome final. Concluir significa que o stream foi consumido e escrito ao abrigo destas API, não que seja a versão ou o documento esperados. Em caso de falha ou cancelamento, guarde ou remova o ficheiro parcial segundo a política de retoma escolhida. Um sinal de cancelamento pode parar o pedido e as operações de fluxo em causa; não decide o que a aplicação deve fazer com a saída.