2009-11-24 32 views
8

Sto cercando di confermare o confutare quanto segue:Applicazione JavaScript pura + Amazon S3?

Per quanto ho letto finora non è possibile scrivere un'applicazione web con solo javascript - nessuna logica lato server - servita da Amazon S3 che anche memorizzare i dati solo su S3 se è necessario disporre di più client con dati privati ​​per client.

Il problema che vedo è l'intestazione di autorizzazione richiesta per ogni chiamata Ajax che mi costringerebbe a mettere la firma (e il mio ID AWS) proprio lì nel sorgente della pagina che tutti possono vedere.

È corretto o ho frainteso i documenti?

Esistono soluzioni alternative?

risposta

7

In breve, sei corretto.

Se la chiave AWS termina in qualsiasi modo sul lato client, si è nei guai.


Una possibile soluzione è, naturalmente, per consentire all'utente di specificare loro chiave AWS per memorizzare i loro dati.

+0

Ma se uso la loro chiave AWS non posso usare DevPay, corretto? Saranno fondamentalmente da soli per quanto riguarda la registrazione e dovranno accedere alla mia app già con la chiave in mano, giusto? – user179997

+0

Scusa - Non so abbastanza su DevPay per dire qualcosa di rilevante. – jldupont

+0

Sì, certo, è un'ottima risposta, grazie! – user179997

-1

iBeans offre un modo per aggirare questo senza dover scrivere alcun codice lato server. C'è un iBean S3 (uno sviluppatore sta lavorando su di esso per essere rilasciato nei prossimi giorni - guarda lo mulesoft blog per un annuncio) e puoi accedervi direttamente dal tuo javascript. L'iBean stesso viene eseguito su un server in modo da non dover memorizzare le chiavi in ​​javascript.

+0

Grazie, stavo cercando una descrizione breve ma non vaga di ciò che fa, hai un puntatore? È ospitato? – user179997

3

Sto lavorando a un progetto che farà qualcosa di simile a questo, il mio gli utenti useranno il proprio S3 che conserverò in HTML5 localStorage. È un po 'complicato, ma ho le basi che funzionano.

Comporta la creazione di un programma Javascript che si replica in S3, riceve se stesso da S3 e quindi trasferisce credenziali e controllo nella versione caricata S3.

Sto utilizzando l'eccellente SJCL per creare la firma e la funzionalità Ajax di jQuery per le parti che posso.

Il mio lavoro inizializza semplicemente l'applicazione laterale S3 e esegue una sequenza di test PUT/GET su S3. Ho anche riscritto un plugin PostMessage di JQuery (che StackOverflow non mi consente di pubblicare per mancanza di rep) per comunicare tra i miei frame.

Nel mio caso, sto provando a montare l'intera applicazione in un singolo file HTML in modo che non debba fare tutto il trasferimento iniziale in S3, ma forse ci sono altri modi per risolvere questo problema.