Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

469
Vistas
Problema de codificación al descargar un archivo de s3 en reactjs usando una URL prefirmada

Estoy tratando de descargar un archivo csv presente en mi cubo s3 usando una URL prefirmada que obtengo de mi servidor back-end. Puedo descargar el archivo completo, pero en la última fila aparecen algunos caracteres no deseados

Este es el archivo csv que obtengo después de la descarga

 sepal_length,sepal_width,petal_length,petal_width,species 6.9,3.1,5.4,2.1,virginica 6.7,3.1,5.6,2.4,virginica 6.9,3.1,5.1,2.3,virginica 6.8,3.2,5.9,2.3,virginica 6.7,3.3,5.7,2.5,virginica 6.7,3.0,5.2,2.3,virginica 6.3,2.5,5.0,1.9,virginica 6.5,3.0,5.2,2.0,virginica 6.2,3.4,5.4,2.3,virginica 5.9,3.0,5.1,1.8,virginica MÏoKó ×Ô]ü°

Como puede ver, el archivo se agrega con algunos valores basura (probablemente debido a algún problema de codificación)

Cuando ejecuto el comando de archivo en mi terminal, obtengo

 file Download.csv >>> Download.csv: data

Estoy usando dos mutaciones, una buscará la URL prefirmada y la otra descargará el archivo de s3.

 useGetPresignedDowloadUrl.mutate( (some_string), { onSuccess: (data, variables, context) => { const s3Data = data as {requestUrl: string, headers: any} downloadExecutionOutputFromS3.mutate( ({requestUrl: s3Data.requestUrl as string, headers: s3Data.headers}), { onSuccess: (data, variables, context) => { download(data as Blob, "Downloaded.csv") } } ) }, } )

Dentro de la mutación downloadExecutionOutputFromS3 estoy usando la siguiente función asíncrona

 s3DownloadRequest = async function (url, headers) { // url and headers coming from backend const response = await fetch(url, {method: 'GET', headers: headers}) return response.blob() }

Y mi función de descarga parece

 function download(blob: Blob, filename: string) { let newBlob = new Blob([blob], {type: 'text/plain'}); const url = window.URL.createObjectURL(newBlob); const a = document.createElement('a'); a.style.display = 'none'; a.href = url; // the filename you want a.download = filename; document.body.appendChild(a); a.click(); document.body.removeChild(a); window.URL.revokeObjectURL(url); }
about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda