Немного предыстории: я создаю приложение для iPhone с дополнительной серверной частью (написано на Rails или, возможно, на Sinatra, но, вероятно, не имеет отношения к этому обсуждению). Часть функциональности включает загрузку изображений с iPhone на сервер. В конечном итоге они сохраняются на S3, поэтому, чтобы упростить приложение и сохранить пропускную способность, я хотел бы загружать изображения прямо с iPhone на S3, пропуская свой внутренний сервер.
Использование S3 REST API (в этом случае я бы, вероятно, использовал ASIHTTPRequest) означало бы сохранение ключа AWS и секрет в приложении для iPhone, чего я не хочу делать по соображениям безопасности.
По тем же причинам я не хочу делать свою корзину S3 общедоступной.
Теперь похоже, что S3 также поддерживает загрузку через браузер с использованием POST. Если я правильно понимаю, это работает путем создания подписанного документа политики на сервере, который затем позволяет клиентскому приложению напрямую отправлять файл POST на S3. Похоже, что в принципе это должно работать не только для браузеров, но и для приложений для iPhone.
Однако мне сложно понять, как это работает (не для iPhone, а просто для загрузки S3 POST в целом). Какую информацию необходимо отправить на сервер для вычисления подписи (например, нужен ли размер файла или какая-либо другая информация о файле)? Я еще немного покопаюсь в официальной документации и начну экспериментировать с этим, но если бы кто-нибудь мог указать мне на какие-то учебные пособия или образец кода, я был бы очень признателен.