Загрузить из iOS-приложения в Amazon S3 - PullRequest
19 голосов
/ 24 ноября 2011

давайте начнем с постановки задачи:

В моем iOS-приложении есть форма для входа.Когда пользователь входит в систему, мой API выполняет вызов, и доступ разрешен или запрещен.Если доступ был предоставлен, я хочу, чтобы пользователь мог загружать изображения в свою учетную запись и / или управлять ими.

В качестве хранилища я выбрал Amazon S3 и решил, что было бы неплохонапример, есть одна корзина под названием «myappphotos», которая содержит множество папок.Имена папок - это хеши электронной почты пользователя и секретного ключа.Итак, у каждого пользователя есть своя уникальная папка в моем корзине Amazon S3.

Поскольку я только недавно начал работать с AWS, вот мой вопрос:

Каковы наилучшие методы настройкисоздать такую ​​систему?Я хочу, чтобы пользователь мог загружать изображения непосредственно в Amazon S3, но, конечно, я не могу жестко закодировать ключ доступа.Поэтому мне нужен мой API, чтобы как-то общаться с Amazon и запрашивать токены доступа - только для конкретной папки, к которой принадлежит пользователь, для которого я делаю запрос.

Может ли кто-нибудь помочь мне и / илиподскажите мне какие-нибудь источники, где была решена подобная проблема?Не думайте, что я первый, и документация по amazon настолько обширна, что я не знаю, с чего начать.

Большое спасибо!

Ответы [ 4 ]

13 голосов
/ 26 ноября 2011

Вы смотрели на Amazon AWS SDK для iOS ?

Из документов:

Образцы идентификации AWSiOSDemoTVM и AWSiOSDemoTV демонстрируют более безопасный механизм для передачи учетных данных безопасности AWS на мобильный клиент. Эти образцы требуют серверное приложение, в этом случае Торговый автомат с токенами (TVM), который предоставляется в виде отдельной загрузки. Примеры приложений регистрируются в TVM как анонимно, так и предоставленные пользователем имя пользователя и пароль. TVM использует AWS Security Token Service, чтобы получить временные учетные данные безопасности и передать их мобильное приложение.

TVM доступен в двух формах, одна из которых поддерживает анонимный доступ. регистрации и тот, который требует имя пользователя и пароль для зарегистрируйте устройство и получите токены безопасности. Скачать и установить TVM для анонимной регистрации, перейдите к http://aws.amazon.com/code/8872061742402990. Для загрузки и установки TVM для регистрации личности, перейдите к http://aws.amazon.com/code/7351543942956566.

С Аутентификация пользователей мобильных приложений AWS с помощью торгового автомата Token :

В этой статье обсуждается архитектура, которая позволяет приложениям запуск на мобильном устройстве для более безопасного взаимодействия с Amazon Web Такие сервисы, как Amazon Simple Storage Service (S3), Amazon SimpleDB, Amazon Simple Notification Service (SNS) и Amazon Simple Queue Сервис (SQS). В обсуждаемой архитектуре используется «Token Vending». Машина »для раздачи временных учетных данных безопасности на мобильный применение.

Ваш токен может ограничивать доступ к определенному сегменту на S3, поэтому он кажется лучшим вариантом.

2 голосов
/ 14 декабря 2013

Чтобы уточнить ответ Терри Уилкокса ...

Вам необходимо создать временные учетные данные безопасности на вашем сервере, используя AWS STS .

STS - это «Сервис токенов безопасности» AWS. Позволяет программно создавать ключи доступа и устанавливать конкретные разрешения и даты истечения срока действия.

Поскольку у вас уже есть API / серверная часть для вашего приложения, которая аутентифицирует ваших пользователей, вы можете сделать вызов API, который сгенерирует временные учетные данные AWS, которые имеют доступ только к папке этого пользователя.

Если у вас нет бэкэнда для вашего приложения, Amazon предоставляет Java-приложение для вызова TVM (Token Vending Machine), с помощью которого вы можете легко развернуть свой собственный экземпляр в Elastic Beanstalk.

Соответствующие статьи AWS:
http://aws.amazon.com/articles/4611615499399490 http://docs.aws.amazon.com/STS/latest/UsingSTS/STSUseCases.html#MobileApplication

2 голосов
/ 02 декабря 2011

ASIHTTPRequest имеет прямую поддержку Amazon S3.

http://allseeing -i.com / ASIHTTPRequest / S3

0 голосов
/ 26 июня 2013

Вы можете ограничить доступ пользователя к уровню папки.См. Этот пример Управление учетными данными .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...