Сохраните данные на S3, используя Javascript или Jquery - PullRequest
5 голосов
/ 11 февраля 2011

Я хочу собрать данные, введенные пользователем в браузер, и сохранить их в Amazon S3.Это то, что я могу сделать с Javascript / Jquery?

Ответы [ 5 ]

8 голосов
/ 29 августа 2012

Я знаю, что это старый вопрос, но у меня была та же проблема, и я думаю, что нашел решение.S3 имеет REST-интерфейс , к которому вы можете напрямую отправлять данные POST, не раскрывая свой секретный ключ AWS.Таким образом, вы можете создать запрос AJAX POST к вашей конечной точке сегмента S3, используя Javascript или jQuery.Вы также можете указать политику доступа в запросе, которая ограничивает доступ к загрузке только определенными сегментами и определенными каталогами.

Amazon проверяет подлинность ваших запросов, используя подпись HMAC, указанную вами в запросе.Подпись создается с использованием сведений о запросе и вашего секретного ключа AWS, которые известны только вам и Amazon, поэтому мошеннические запросы не могут быть выполнены без наличия действительной подписи.

3 голосов
/ 22 декабря 2012

Да, это возможно, и, как я уже указывал в комментариях к принятому ответу, существуют законные и полезные способы сделать это без ущерба для безопасности и учетных данных.

Вы можете публиковать объекты на S3 непосредственно избраузер: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPOST.html

3 голосов
/ 11 февраля 2011

Плохая идея:

1) Подумайте о том, сколько людей могут получить удовольствие от опустошения вашего банковского счета, когда обнаружат, что ваши учетные данные S3 встроены в ваш код Javascript.

2) Javascript будет загружаться с вашего сервера и пытаться общаться с серверами Amazon - это запрещено, так как это междоменная связь.

Нечто подобное вы бы хотели обработать на сервере. Вы можете легко создать интерфейс AJAX для отправки данных client browser -> your server -> amazon. Таким образом, ваши учетные данные S3 хранятся на вашем сервере и не передаются всем желающим, использующим ваш сайт.

1 голос
/ 07 сентября 2013

Может быть, посмотрите на node.js и попробуйте пакет aws-sdk:

npm install aws-sdk

Есть блог и документация о том, как загрузить файлы на S3:

этот блог. и aws doc.

0 голосов
/ 13 февраля 2011

Существует множество проблем при попытке доступа к S3 через код на стороне клиента:

  • Нет способа защитить ваши учетные данные.
  • Многие ответы представлены в формате XML вместо JSON, а механизм синтаксического анализа XML в JavaScript тяжелый и медленный.
  • Аутентификация запросов потребует реализации JavaScript HMAC-SHA1.
  • Существуют проблемы с выполнением междоменных запросов из JavaScript без маршрутизации через прокси.

В целом, на данный момент не существует реальных решений для клиентского JavaScript. Если вы интересуетесь серверным JavaScript, есть несколько классов S3, плавающих вокруг GitHub для Node.js.

...