Pregunta

Nuestro sitio permite a los usuarios almacenar sus archivos privados en nuestro sitio, que ahora está en un depósito S3 desde que nos mudamos a AWS.Los usuarios pueden descargar sus archivos nuevamente, pero solo después de iniciar sesión en nuestro sitio web.Incluso si tienen la URL directa (/download.php?fileid=1234), los usuarios deben iniciar sesión primero.

En este momento tenemos un script de descarga que extrae el archivo de S3 en fragmentos y luego lo pasa al usuario.Esto funciona bien e incluso permite reanudar la descarga si su navegador lo admite.Nadie tiene quejas.

Pero tengo esta sensación persistente de que solo estoy Haciendolo mal, y tiene que haber alguna forma de permitir a los usuarios descargar directamente desde S3, pero nuevamente, solo si inician sesión en nuestro sitio.

he estado mirando URL prefirmadas - ¿Es esto lo que necesito?Si es así, entonces supongo que debería hacer una Location: https://bucket.s3... redirigir cuando el usuario golpea /download.php?fileid=1234?

¿Cómo funcionaría esto con un administrador de descargas que admita la reanudación?¿La reanudación dejaría de funcionar porque irían directamente al S3 con una clave caducada?La reanudación es tan poco común que puede valer la pena aumentar la velocidad para que la gente normal no tenga que pasar por nuestros servidores primero...

¿Cómo manejan sus descargas seguras desde S3?

¿Fue útil?

Solución

Ambas soluciones propuestas están bien.Simplemente depende de las cosas como si quiere tener todos los datos que vienen a través de su servidor (que debe escalar) o si está bien para que el enlace caduque después del límite de tiempo establecido.

Yo uso ambos enfoques para diferentes situaciones.

Rara vez recomiendo re-implementar una solución que esté funcionando sin las circunstancias atenuantes (las necesidades de escala anticipadas, las preocupaciones de seguridad, etc.).

y sí, si intentan acceder a una URL firmada después del tiempo de vencimiento, fallará.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top