Soy nuevo en la escritura de Rails y API. Necesito ayuda con la solución de almacenamiento S3. Este es mi problema.
Estoy escribiendo una API para una aplicación de iOS donde los usuarios inician sesión con la API de Facebook en iOS. El servidor valida al usuario contra el token que Facebook emite al usuario de iOS y emite un token de sesión temporal. A partir de este punto, el usuario debe descargar el contenido almacenado en S3. Este contenido solo pertenece al usuario y a un subconjunto de sus amigos. Este usuario puede agregar más contenido a S3 al que puede acceder el mismo grupo de personas. Supongo que es similar a adjuntar un archivo a un grupo de Facebook ...
Hay 2 formas en que un usuario puede interactuar con S3 ... déjelo al servidor o haga que el servidor emita un token S3 temporal (no estoy seguro de las posibilidades aquí) y el usuario puede acceder a las URL de contenido directamente a S3. Encontré esta pregunta hablando sobre los enfoques, sin embargo, está realmente anticuada (hace 2 años): Pregunta arquitectónica y de diseño sobre la carga de fotos desde la aplicación de iPhone y S3
Entonces las preguntas:
- ¿Hay alguna forma de limitar el acceso de un usuario a solo algunos contenidos en S3 cuando se emite un token temporal? ¿Cómo puedo hacer esto? Suponga que hay ... digamos 100.000 o más usuarios.
- ¿Es una buena idea dejar que el dispositivo iOS extraiga este contenido directamente?
- ¿O debería dejar que el servidor controle todo el contenido que pasa (esto resuelve la seguridad, por supuesto)? ¿Significa esto que tengo que descargar todo el contenido al servidor antes de entregárselo a los usuarios conectados?
- Si conoces rieles ... ¿puedo usar un clip y gemas aws-sdk para lograr este tipo de configuración?
Disculpas por las múltiples preguntas y agradezco cualquier idea del problema. Gracias :)