Ho scritto un'applicazione di Google App Engine che utilizza Blobstore per salvare i dati generati a livello di programmazione. Per farlo, ho utilizzato lo Files API, che purtroppo è stato ritirato a favore di Google Cloud Storage. Quindi sto riscrivendo la mia classe helper per lavorare con GCS.Ottieni un file Google Cloud Storage dal suo BlobKey
Mi piacerebbe mantenere l'interfaccia il più possibile simile a prima, anche perché mantengo BlobKeys nel Datastore per mantenere i riferimenti ai file (e cambiare il modello di un'applicazione di produzione è sempre doloroso). Quando salvo qualcosa da GCS, posso recuperare un BlobKey con
BlobKey blobKey = blobstoreService.createGsBlobKey("/gs/" + fileName.getBucketName() + "/" + fileName.getObjectName());
come prescritto here, e io insisto nel Datastore.
Quindi ecco la domanda: la documentazione mi dice come servire un file GCS con blobstoreService.serve(blobKey, resp);
in una risposta servlet, MA come posso recuperare il contenuto del file (come InputStream, array di byte o qualsiasi altra cosa) per usarlo nel mio codice per ulteriore elaborazione? Nella mia attuale implementazione lo faccio con una lettura FileReadChannel
da un AppEngineFile
(entrambi deprecati).
Grazie! Speravo di ottenere il contenuto usando BlobKey, ma se non c'è modo di farlo, io (ugh) refactor il mio modello per includere il nome dell'oggetto –