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

468
Visualizações
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 à 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