Nuestra aplicación móvil cargará imágenes a AWS S3. La pregunta es si hacer una de las siguientes opciones:
-
Suba la imagen a nuestro servidor de API, luego nuestro servidor de API carga la imagen a S3
Ventajas: Más seguro, ya que las credenciales de S3 solo se almacenan en la nube.
Contras: Más presión sobre el servidor de API, ya que miles de usuarios subirán imágenes, con tamaños que varían de 2 MB a 10 MB -
Deje que la aplicación móvil cargue la imagen directamente en S3, obteniendo las credenciales temporales de S3 del servidor de API para cada acceso a S3.
Ventajas: Menos presión en el servidor de API, sin archivos se cargarán al servidor.
Contras: Menos seguras, ya que las credenciales de S3 estarán expuestas al móvil, independientemente del hecho, la aplicación móvil solicitará credenciales temporales cada vez que acceda a S3. y que obtiene la credencial a través de la conexión SSL con el servidor de API.
Entonces, ¿la opción dos arriba es aún mejor? Como ya estamos otorgando credenciales temporales, es válido por solo 15 minutos cada vez para acceder a S3 a través de la conexión SSL.
¿Cuál es la forma recomendada de hacer esto?