Servizio di archiviazione con Google App Engine
-
21-09-2019 - |
Domanda
Mi è stato assegnato un progetto per creare un servizio di archiviazione di file su Google App Engine. Ma sono davvero dubbio se sia possibile o meno il limite di 30 sec per elaborare la risposta e inoltre la sua bigtable è solo un sistema di database non un archivio server .am ho corretto?
Soluzione
Ti consigliamo di guardare l'API Blobstore
http://code.google.com/appengine/docs/java/blobstore/
Ti consente di caricare file fino a 50 MB di dimensioni e servirli direttamente, senza passare attraverso BigTable. Quello che sto facendo è che ho uno script che prende un file, crea l'URL del caricamento di Blobstore, quindi pubblica il file che ha ricevuto su quell'URL e memorizza una voce in bigtable. Il limite di tempo di 30 secondi si applica solo al tempo di elaborazione, quindi l'atto di caricare un file non conta per questo.
Altri suggerimenti
Se tutto ciò di cui hai bisogno è l'archiviazione, una scelta migliore rispetto al motore app è il nuovo beta-d Archiviazione di Google:
Google Storage for Developer è un servizio riposante per la memorizzazione e l'accesso ai dati sull'infrastruttura di Google. Il servizio combina le prestazioni e la scalabilità del cloud di Google con funzionalità avanzate di sicurezza e condivisione. I punti salienti includono:
Store di oggetti veloce, scalabile e altamente disponibile
Tutti i dati replicati a più data center statunitensi
Leggi la coerenza dei dati delle scritture
Oggetti di centinaia di gigabyte di dimensioni per richiesta con supporto di gamma
Spazio dei nomi dei secchi espulsi dal dominio
Autenticazione e condivisione facili e flessibili
Autenticazione basata su chiave
Download autenticati da un browser web
Controlli di accesso a livello individuale e di gruppo
Usa e cerca se ti piace Blobstore azione Io mantengo
Questo è sicuramente possibile.
Ci sono anche alcune domande simili che sono state Risposta. Vedi Google per ulteriori implementazioni.
Ma in generale, sì, il limite di 30 secondi complica il tuo compito, ma puoi rompere il file in blocchi e memorizzarli ciascuno separatamente come testo/BLOB. API remota del motore dell'app potrebbe farlo per te automaticamente.
Tieni presente che hai 10 MB per restrizione di richiesta.
Dai un'occhiata a questo progetto per un po 'di ispirazione:
http://django-filetransfers.appspot.com/
SourceCode è disponibile se si seguono un link sulla pagina.