Eu sou novo na escrita de Rails e APIs. Preciso de ajuda com a solução de armazenamento S3. Aqui está meu problema.
Estou escrevendo uma API para um aplicativo iOS onde os usuários fazem login com a API do Facebook no iOS. O servidor valida o usuário em relação aos problemas de token do Facebook para o usuário iOS e emite um token de sessão temporário. A partir deste ponto, o usuário precisa baixar o conteúdo que está armazenado no S3. Este conteúdo pertence apenas ao usuário e a um subconjunto de seus amigos. Este usuário pode adicionar mais conteúdo ao S3, que pode ser acessado pelo mesmo grupo de pessoas. Acho que é semelhante a anexar um arquivo a um grupo do Facebook ...
Existem 2 maneiras de um usuário interagir com o S3 ... deixar isso para o servidor ou fazer com que o servidor emita um token S3 temporário (não tenho certeza das possibilidades aqui) e o usuário pode acessar as URLs de conteúdo diretamente para o S3. Achei esta pergunta falando sobre as abordagens, no entanto, é realmente datado (2 anos atrás): Questão de arquitetura e design sobre upload de fotos do aplicativo para iPhone e S3
Então, as perguntas:
- Existe uma maneira de limitar o acesso de um usuário a apenas algum conteúdo no S3 quando um token temporário é emitido? Como posso fazer isso? Suponha que haja ... digamos 100.000 ou mais usuários.
- É uma boa ideia permitir que o dispositivo iOS extraia esse conteúdo diretamente?
- Ou deveria deixar o servidor controlar a passagem de todo o conteúdo (isso resolve a segurança, é claro)? Isso significa que devo baixar todo o conteúdo para o servidor antes de entregá-lo aos usuários conectados?
- Se você conhece rails ... posso usar joias de clipe de papel e aws-sdk para conseguir esse tipo de configuração?
Peço desculpas por várias perguntas e agradeço qualquer esclarecimento sobre o problema. Obrigado :)