2009-11-24 14 views
8

Estoy buscando para confirmar o refutar lo siguiente:Aplicación de JavaScript puro + Amazon S3?

Por lo que he leído hasta ahora, no es posible escribir una aplicación web con javascript, sin lógica del servidor, servida desde Amazon S3 que también almacene datos solo en S3 si necesita tener varios clientes con datos privados por cliente.

El problema que veo es el encabezado de Autorización requerido para cada llamada Ajax que me obligaría a poner la firma (y mi ID de AWS) allí en el origen de la página para que todos la vean.

¿Es correcto o entendí mal los documentos?

¿Hay soluciones provisionales?

Respuesta

7

En resumen, estás en lo cierto.

Si su llave AWS termina de alguna manera en el lado del cliente, tiene problemas.


Una posible solución es, por supuesto, para que el usuario especifique su llave AWS para almacenar sus datos.

+0

Pero si uso su clave AWS no puedo usar DevPay, ¿correcto? Básicamente estarán solos en lo que respecta al registro y tendrán que acercarse a mi aplicación con la llave en la mano, ¿no? – user179997

+0

Lo siento, no sé lo suficiente sobre DevPay para decir algo relevante. – jldupont

+0

Sí, por supuesto, es una gran respuesta, ¡gracias! – user179997

-1

iBeans ofrece una forma de evitar esto sin tener que escribir ningún código del lado del servidor. Hay un S3 iBean (un desarrollador está trabajando en él para ser lanzado en los próximos días; mire el mulesoft blog para un anuncio) y puede acceder a él directamente desde su javascript. El iBean se ejecuta en un servidor por lo que no necesitaría almacenar sus claves en el javascript.

+0

Gracias, estaba buscando una breve pero no vaga descripción de lo que hace, ¿tiene un puntero? ¿Está alojado? – user179997

3

Estoy trabajando en un proyecto que hará algo similar a esto, el mío hará que los usuarios usen su propio S3 que almacenaré en HTML5 localStorage. Es un poco complicado, pero tengo lo básico funcionando.

Se trata de crear un programa de Javascript que se replique en S3, se obtenga de S3 y luego transfiera las credenciales y el control en la versión cargada de S3.

Estoy usando la excelente SJCL para hacer la generación de la firma y la funcionalidad ajax de jQuery para las partes que pueda.

Mi trabajo simplemente inicializa la aplicación del lado S3 y realiza una secuencia de prueba PUT/GET a S3. También reescribí un complemento de JQuery postMessage (que StackOverflow no me permite publicar por falta de representante) para comunicarme entre mis marcos.

En mi caso, estoy tratando de ajustar toda la aplicación en un único archivo HTML para no tener que hacer tanta transferencia inicial en S3, pero tal vez haya otras formas de resolver esto.