5

Qualcuno può chiarire questo per me. Sto leggendo la pagina degli sviluppatori sul blobstore allo https://developers.google.com/appengine/docs/java/blobstore/overview. Non riesco a capire come funziona il processo di salvataggio e recupero dei BLOB? SembraCome utilizzerei blobstore per elaborare le immagini Android

  • Android Applicazione avrebbe inviato direttamente un'immagine al blobstore
  • dopo aver salvato l'immagine, il blobstore sarebbe poi tornare un blobkey al mio backend per me di mettere nel datastore

È questo il processo? Forse è perché ho avuto una lunga giornata, ma non riesco a vederlo. Se qualcuno ha un esempio a cui non dispiace condividere, per favore pubblicalo. Ho solo bisogno di salvare le immagini da Android nel blobstore e quindi essere in grado di recuperarle con blobkey o in altro modo.

ho già guardare

Per la vita di me, non so perché non stanno facendo è per me.

suppongo che alcune domande sono:

  • Come si fa Android sa dove inviare il blob a? Voglio dire, Google distingue tra le mie istanze del blobstore rispetto alle istanze di altre persone, in modo simile a come distingue le mie istanze del datastore? In altre parole, potrei andare al motore di app Applications Overview e vedere tutti i blob che appartengono alla mia app nello stesso modo in cui potevo nel datastore? Suppongo che un codice completo e funzionante possa aiutarmi a vedere queste risposte.

Parte del mio problema potrebbe essere che non ho mai usato la servlet. Attualmente sto usando Google Cloud Endpoint per la mia API.

+1

state chiedendo se avete qualche codice funzionante su questa soluzione? –

risposta

1

La descrizione del processo è corretta. L'unico passo che ti manca è il primo: il lato server chiama blobstoreService.createUploadUrl (redirecturl) per generare l'URL da caricare. Quindi il gestore di redirecturl salverà la chiave blob sul datastore.

+0

L'URL è impostato per sempre o è dinamico? Come fa l'app per Android deve chiamarla ogni volta che deve salvare un blob o una lo ottengo una volta e poi lo memorizza sul client e lo usa ogni volta che ho bisogno di inviare un blob? – learner

+0

è dinamico. Quella funzione crea un nuovo URL per ogni blob. Non sono sicuro se Endpoint abbia un modo specifico per affrontarlo, ma il caso generale con Blobstore è che devi usare createUploadUrl() ogni volta che vuoi caricare qualcosa su Blobstore. – dragonx

+0

@dragonx quando blobstore chiama il server attraverso l'url di richiamata, come fa il server a sapere a quale utente è destinato il callback? –

3

In realtà ci sono due modi per caricare a blobstore:

Uso direct upload handler:

  • Server ottiene un unico one-time segreto url caricati tramite createUploadUrl(..) e invia questo URL al cliente.
  • Il client utilizza multipart/form-data POST per caricare i dati in questo URL.
  • Il lato positivo è che è possibile caricare file di grandi dimensioni (> 32mb).

Utilizzando blobstore FileService API che è deprecato e non deve essere utilizzato più:

  • Si crea Possiedi un gestore di upload post in cui i dati arrivi client.
  • È possibile utilizzare l'API FileService per salvare i dati su blobstore.
  • Lo svantaggio è che è possibile caricare max 32 MB di dati (limite di richiesta GAE generico).
  • Il lato positivo è che si ha accesso ai dati in modo da poter modificare i contenuti, se necessario.
+0

Grazie per aver postato. +1. questo è utile. – learner

Problemi correlati