Jestem nowy w pisaniu Railsów i API. Potrzebuję pomocy z rozwiązaniem pamięci masowej S3. Oto mój problem.
Piszę API dla aplikacji iOS, w której użytkownicy logują się za pomocą Facebook API na iOS. Serwer weryfikuje użytkownika pod kątem tokena wystawionego przez Facebooka użytkownikowi iOS i wystawia tymczasowy token sesji. Od tego momentu użytkownik musi pobrać zawartość przechowywaną w S3. Ta treść należy tylko do użytkownika i części jego znajomych. Ten użytkownik może dodać więcej treści do S3, do których ma dostęp ta sama grupa osób. Wydaje mi się, że jest to podobne do dołączenia pliku do grupy na Facebooku ...
Istnieją 2 sposoby, w jakie użytkownik może wchodzić w interakcję z S3 ... pozostawić to serwerowi lub poprosić serwer o wydanie tymczasowego tokena S3 (nie jest pewien możliwości tutaj), a użytkownik może trafić na adresy URL treści bezpośrednio do S3. Znalazłem to pytanie, mówiąc o podejściach, jednak jest naprawdę przestarzałe (2 lata temu): Pytanie architektoniczne i projektowe dotyczące przesyłania zdjęć z aplikacji na iPhone'a i S3
Więc pytania:
- Czy istnieje sposób na ograniczenie dostępu użytkownika tylko do niektórych treści w S3, gdy zostanie wystawiony tymczasowy token? Jak mogę to zrobić? Załóżmy, że jest ... powiedzmy 100 000 lub więcej użytkowników.
- Czy dobrym pomysłem jest umożliwienie urządzeniu z systemem iOS bezpośredniego pobierania tej zawartości?
- A może powinien pozwolić serwerowi kontrolować wszystkie przekazywanie treści (to oczywiście rozwiązuje problem bezpieczeństwa)? Czy to oznacza, że muszę pobrać całą zawartość na serwer, zanim przekażę ją podłączonym użytkownikom?
- Jeśli znasz szyny ... czy mogę użyć spinacza i klejnotów aws-sdk, aby uzyskać taką konfigurację?
Przepraszam za wiele pytań i doceniam wszelkie wglądy w problem. Dzięki :)