Ottimizza il recupero dei dati degli utenti usando S3

3

Sto scrivendo un'app mobile che comunica con il mio server usando REST. Ad ogni avvio, l'app effettua una chiamata all'API del server per verificare se è stata apportata una modifica ai dettagli dell'utente (utilizzando un parametro lastUpdate ), l'API restituisce l'oggetto utente aggiornato nel caso si verificasse una modifica.

problema

Lo svantaggio di questo approccio, naturalmente, è che ogni avvio dell'app causa una chiamata API (e una query SQL) al mio server.

Soluzione

Mi è venuta l'idea di usare l'header ETAG\last-modified HTTP e memorizzare i dettagli dell'utente come un file json nel bucket S3 (+ controllo di accesso S3). In questo modo, l'app può controllare quel file (anziché una chiamata diretta all'api). Risparmierò molte connessioni al mio server e anche molte query db.

Domanda

Sembra una soluzione legittima, anche se in qualche modo ho la sensazione che memorizzare tutti i dati dei miei utenti in file su S3 non sia sicuro ..

Che ne pensi?

    
posta rizon 22.10.2013 - 18:39
fonte

1 risposta

2

Il controllo degli accessi di S3 non è adatto alla funzionalità. Se ogni istanza dell'app utilizza le stesse credenziali per accedere a S3, i record JSON potrebbero essere compromessi da un utente malintenzionato che ha decompilato l'app.

se si desidera apportare una modifica a un record utente memorizzato in S3, la modifica non si propagherà immediatamente. Quindi se tu se la tua applicazione ha un user_state=disabled , allora questa modifica potrebbe non essere riflessa immediatamente in s3.

Considerare l'utilizzo di memcachd per memorizzare nella cache i record json. Accedi ai record usando un token casuale temporaneo.

    
risposta data 22.10.2013 - 20:48
fonte

Leggi altre domande sui tag