2016-08-10 3 views
1

Я хочу сделать загрузку с javascript (в конечном счете, Elm) до S3. Я чувствую, что сохранение даже секретного ключа пользователя IAM на клиенте создает риски (скажите мне, если я ошибаюсь), но у вас есть серверный сервер, который может манипулировать секретным ключом (и предоставлять только подписи людям, которые, как он знает, аутентифицированы).Secure S3 uploading

Но я не могу найти что-либо в JS SDK, который использует предоставленную сервером информацию, поэтому мне интересно, не думаю ли я об этом, все это неправильно?

Альтернативой является создание формы POST, и я осваивал основы этого, но документы AWS дают впечатление для загрузок с использованием только кода, я должен работать с заголовками auth.

То, что я хотел бы, чтобы добраться до это:

1) Drop files on webapp, pass filenames to (3) 
2) use JS filereader to read content 
3) make http request to server for a signed url for the filenames in (1) 
4) use signed url to upload content to S3 
+0

Крейгс прав - взгляните на это объяснение. У него больше деталей, чем у меня. – apchester

ответ

1

Вы должны смотреть на основе загрузке браузера с помощью POST документации.

На сервере вы создаете документ политики с указанием срока действия и генерируете сигнатуру загрузки, которая вставлена ​​в форму, а затем форма отправляется на s3.

Выполнение этого способа означает, что вы можете хранить ключ на сервере.

Диаграмма в the documentation неплохо объясняет процесс.

Подробнее о необходимых полях смотрите full documentation.

+0

ОК, так что JS SDK вообще не нужен? Это стандартный, многочастный запрос POST –

+0

POST прост и надежен. Однако я еще не заглянул в JS SDK. – apchester

+0

Не уверен, я думаю, что несколько частей просты, но .... –