Мы разрабатываем мобильное приложение, используя Parse в качестве нашего решения BAAS, но используя Amazon S3 для хранения наших медиафайлов. Все наши пользователи загружают медиафайлы в свои собственные папки внутри корзины нашего приложения. Когда пользователь загружает медиафайлы, мы обновляем их записи в Parse, чтобы он знал, где скачать файлы. Это легкая часть.
Я потратил довольно много времени на изучение различных политик для корзин S3 и пытаюсь понять, как правильно обеспечить безопасность загружаемого контента. Если вы выполняете всю свою работу с DynamoDB или SimpleDB, это легко, потому что вы по существу настраиваете свои ACL с учетными записями IAM и так далее. Если вы используете Amazon Cognito, это также просто, потому что аутентификация происходит через учетные записи Google, Facebook или Amazon. В моем случае я использую Parse для аутентификации пользователей, которые не могут напрямую общаться с Amazon.
Моя цель состоит в том, чтобы только тот пользователь, который в данный момент вошел в систему Parse с ID # 1234567, мог получить доступ к своей собственной папке и файлам 1234567 (а также любому другому пользователю, которому дано разрешение на сотрудничество). Вот сообщение, похожее на то, что я пытаюсь выполнить: политика корзины amazon S3 - ограничение доступа по ссылке, НО не ограничение, если URL-адреса генерируются с помощью аутентификации строки запроса
... но как мне сделать это с помощью идентификационного номера текущего пользователя?
Еще лучший вопрос: является ли этот пост, упомянутый выше, наилучшей практикой, или я должен вместо этого подумать о создании сервера EC2 для обработки доступа к этим файлам? Стоит ли мне искать в CloudFront для обслуживания частного контента? Или есть другой метод, который лучше подходит для того, что я пытаюсь выполнить? Хожу по кругу, голова кружится.
Спасибо тому, кто может помочь мне поправить.