Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

179
Views
Forma correcta de permitir que un usuario descargue un archivo cuando se genera su URL

Situación:

  • El archivo se encuentra en AWS S3
  • El usuario presiona el botón para descargar un archivo
  • La solicitud se envía al servidor.
  • El servidor en respuesta envía la URL generada que otorga acceso al archivo
    • La URL, por supuesto, vincula a otro dominio (al cubo S3)

Solución actual:

  • En este momento, el controlador JS cambia la ubicación de la ventana a la URL recibida.
  • El archivo se descarga como debería.
  • Pero los navegadores arrojan errores como:
    • Chrome: "Recurso interpretado como documento pero transferido con aplicación de tipo MIME/octet-stream"
    • Safari: "Error al cargar el recurso: carga de marco interrumpida"

No puedo reemplazar el botón con el simple <a href="url" download> porque la URL se genera en respuesta a la solicitud del usuario y no se conoce de antemano.

Quiero que sea una experiencia de un solo clic (es decir, no quiero que el usuario haga clic en un nuevo botón con la URL recibida).


Pregunta:

  • ¿Cuál es la forma correcta de permitir que un usuario descargue un archivo cuando se genera su URL?
  • ¿Está bien cambiar la ubicación de la window.location para ese propósito?
about 4 years ago · Santiago Trujillo
3 answers
Answer question

0

No suena bien cambiar la ubicación de la window.location para el archivo de descarga.

Si usa una etiqueta <a> , puede agregar el atributo de download

 <a href="my.pdf" download="your.pdf" >download file</a>

Si prefiere usar código, puede usar un script como este:

 var aTag = document.createElement('a'); aTag.setAttribute('download','your.pdf'); aTag.setAttribute('href','my.pdf'); aTag.click();
about 4 years ago · Santiago Trujillo Report

0

La forma correcta es hacer que el backend envíe el encabezado Content-Type adecuado con el tipo de archivo MIME correcto en la solicitud de descarga del enlace.

Está bien cambiar window.location o document.location.href para redirigir la página al enlace de descarga.

about 4 years ago · Santiago Trujillo Report

0

Este es en realidad un problema muy simple que no necesita Javascript en absoluto.

Cuando la solicitud se envía al servidor simplemente haciendo clic en un enlace para realizar la solicitud, el servidor, después de validar la solicitud, genera una URL firmada y luego responde...

 HTTP/1.1 302 Found Location: https://example-bucket.s3.amazonaws.com/... # new signed URL

El navegador sigue la redirección y obtiene el recurso.

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!