2009-11-18 5 views
7

Немного фона: я создаю приложение для iPhone с дополнительным серверным бэкэндом (написанным в Rails или, возможно, Sinatra, но, вероятно, не имеющим отношения к этому обсуждению). Часть функциональности включает загрузку изображений с iPhone на сервер. В конечном итоге они сохраняются на S3, поэтому, чтобы упростить приложение и сохранить пропускную способность, я хотел бы загрузить изображения непосредственно с iPhone на S3, пропуская мой сервер.Amazon S3 POST upload (от iPhone)

Использование API SEST REST (в этом случае я бы, скорее всего, использовал ASIHTTPRequest) означало бы хранить ключ и секрет AWS в приложении iPhone, что я не хочу делать по соображениям безопасности.

По аналогичным причинам я не хочу публично записывать свой ведро S3.

Теперь похоже, что S3 также имеет поддержку для browser-based uploads using POST. Если я правильно понимаю, это работает, создавая подписанный документ политики на сервере, который затем позволяет клиентскому приложению напрямую отправлять файл S3 на S3. Похоже, в принципе это должно работать не только для браузеров, но и для iPhone-приложений.

Тем не менее, мне сложно определить, какой способ получить эту работу (не конкретная часть iPhone, а только загрузка S3 POST в целом). Какую информацию необходимо отправить на сервер для расчета подписи (например, нужен ли размер файла или какая-либо другая информация о файле)? Я еще больше выкопаю официальные документы и начну экспериментировать с этим, но если кто-нибудь может указать мне на некоторые учебники или примеры кода, это было бы высоко оценено.

ответ

5

Когда вы создаете политику, вы можете ограничить загрузку различными способами (имя ключа, тип mime, размер файла и т. Д.), Построив строку JSON. Эти ограничения (включая expirydate) затем подписываются с использованием секретного ключа AWS. Затем вы публикуете подписанную политику и получаете ключ в качестве параметров формы для AWS вместе с ключом для нового ресурса, его содержимого и любых других метаданных, которые вам нравятся.

Официальный DOCO является единственным упоминанием я знаю (но я не гугл за это либо ...)

http://docs.amazonwebservices.com/AmazonS3/2006-03-01/dev/HTTPPOSTForms.html#HTTPPOSTConstructPolicy

это страница, которую вы, вероятно, больше всего интересует.

+0

Спасибо за объяснение. Я надеялся, что там может быть что-то большее, чем учебное пособие, но в ретроспективе кажется, что у документа Amazon есть вся необходимая информация, поэтому я должен просто начать экспериментировать с ним. –

+0

Этот URL-адрес больше не работает – Deepak

Смежные вопросы