2009-11-24 4 views
8

Я ищу, чтобы подтвердить или опровергнуть следующее:Чистое приложение Javascript + Amazon S3?

Для того, что я до сих пор читал, невозможно написать веб-приложение с только javascript - никакой логики на стороне сервера - подано с Amazon S3, что также хранить данные только до S3, если вам нужно иметь несколько клиентов с частными данными на одного клиента.

Проблема, которую я вижу, - это заголовок авторизации, необходимый для каждого вызова Ajax, который заставил бы меня помещать подпись (и мой AWS-идентификатор) прямо в источник страницы, чтобы все могли видеть.

Это правильно или я неправильно понял документы?

Есть ли обходные пути?

ответ

7

Одним словом, вы правы.

Если ваш ключ AWS каким-либо образом заканчивается на стороне клиента, у вас проблемы.


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

+0

Но если я использую их ключ AWS, я не могу использовать DevPay, правильно? Они будут в основном сами по себе, если они будут зарегистрированы, и им придется подходить к моему приложению уже с их ключом, не так ли? – user179997

+0

Извините - я не знаю достаточно о DevPay, чтобы сказать что-то актуальное. – jldupont

+0

Да, конечно, это отличный ответ, спасибо! – user179997

-1

iBeans предлагает способ обойти это без необходимости писать код на стороне сервера. Там есть S3 iBean (разработчик работает над этим, чтобы быть выпущенным в ближайшие несколько дней - смотрите mulesoft blog для анонса), и вы можете получить к нему доступ прямо со своего javascript. Сам iBean работает на сервере, поэтому вам не нужно будет хранить ваши ключи в javascript.

+0

Спасибо, я искал короткое, но не смутное описание того, что он делает, у вас есть указатель? Он размещен? – user179997

3

Я работаю над проектом, который будет делать что-то похожее на это, у меня будут пользователи использовать свои собственные S3, которые я буду хранить в HTML5 localStorage. Это немного сложно, но у меня есть основы работы.

Он включает в себя создание Javascript-программы, которая реплицирует себя на S3, получает от S3, а затем передает учетные данные и управление в загруженную версию S3.

Я использую отличный SJCL для создания подписи и функции ajax jQuery для частей, которые я могу.

Моя работа просто инициализирует приложение S3 и выполняет тестовую последовательность PUT/GET на S3. Я также переписал плагин JQuery postMessage (который StackOverflow не позволяет мне отправлять сообщения из-за отсутствия реплики) для обмена данными между моими кадрами.

В моем случае я пытаюсь вставить все приложение в один файл HTML, чтобы мне не пришлось делать столько же начальной передачи на S3, но, возможно, есть и другие способы его решения.