Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

102
Visualizações
Obtener la cantidad de datos enviados al cliente desde la transmisión

Tengo una API Express que tiene alguna funcionalidad de descarga, implementada al canalizar una transmisión desde una llamada de fetch a res . Quiero registrar la cantidad de datos descargados, para poder rastrear los datos utilizados por cuenta. Mi implementación actual es:

 let bytesSent = 0 res.set({ 'content-length': contentLength, 'content-type': contentType, 'content-disposition': `attachment;filename="${filename}"`, }) download.body.pipe(res) download.body.on('data', (chunk) => { bytesSent += chunk.byteLength }) download.body.on('error', next) res.on('close', async () => { // Store bytesSent })

El problema con esto es (creo) que está rastreando los datos descargados de la fuente y no tiene en cuenta las restricciones de ancho de banda del cliente. Por ejemplo, si descargo un archivo de 180 MB pero cancelo la descarga en el cliente de 20 MB, todavía registra 100-180 MB.

¿Cómo puedo rastrear la cantidad de datos realmente descargados por el cliente, en lugar de los descargados/almacenados en búfer por la llamada de búsqueda?

about 4 years ago · Santiago Gelvez
1 Respostas
Responde à pergunta

0

Puede intentar "decorar" la función res.write en sí misma y registrar los bytes que pasan por allí. Algo como:

 const origResWrite = res.write.bind(res); res.write = (chunk, encoding, callback) => { // Store byteLength of chunk somewhere - here we just log it console.log("Writing bytes of size", Buffer.byteLength(chunk)); origResWrite(chunk, encoding, callback); } download.body.pipe(res);
about 4 years ago · Santiago Gelvez Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda