Tengo mi solicitud escrita en Flask (Python 3.6) y ejecutada en EB.
Necesito implementar un editor de contenido que permita cargar archivos en el servidor y me gustaría almacenarlos en s3. La mayoría de los archivos cargados estarán disponibles después de iniciar sesión en mi aplicación.
¿La pregunta es cómo manejar la seguridad de dichos archivos?
¿Debo usar mi aplicación como middleware y verificar si el usuario está registrado y, en ese caso, descargar el archivo de S3 en mi backend y devolverlo al usuario como respuesta estándar del Frasco?
¿O mejor idea es generar urls presignados con fecha de caducidad?
El problema con las URL presignadas es que perderé el almacenamiento en caché del lado del navegador de mis archivos, que me gustaría conservar (la mayoría de los archivos son imágenes, por lo que es innecesario volver a descargarlos cada vez).
El segundo problema también es que esta URL no está vinculada de ninguna manera con el usuario que ha iniciado sesión en mi aplicación, por lo que, básicamente, esta URL presignada puede ser utilizada por cualquier persona hasta que caduque.
Ahora mismo tengo el código heredado implementado de primera manera: