sirviendo la imagen de blobstore a través de la aplicación de puntos finales del motor api

Estoy creando una api de punto final de motor de aplicación que toma imágenes de un usuario (aplicación de Android) y la guarda en blobstore mediante programación. Luego guardo el blob_key en mi almacén de datos. El código va así:

Primero recibí la imagen a través de mi@endpoint.method como unmessages.BytesField:

image_data = messages.BytesField (1, required = True)

Entonces guardo en el blobstore así:

from google.appengine.api import files

def save_image(data):
  # Create the file
  file_name = files.blobstore.create(mime_type='image/png')

  # Open the file and write to it
  with files.open(file_name, 'a') as f:
    f.write('data')

  # Finalize the file. Do this before attempting to read it.
  files.finalize(file_name)

  # Get the file's blob key
  blob_key = files.blobstore.get_blob_key(file_name)
  return blob_key # which is then saved to datastore

Ahora quiero servir la imagen de vuelta. No veo cómo encajar el siguiente código en mi API de puntos finales:

from google.appengine.ext import blobstore
from google.appengine.ext.webapp import blobstore_handlers
class ServeHandler(blobstore_handlers.BlobstoreDownloadHandler):
  def get(self, resource):
    resource = str(urllib.unquote(resource))
    blob_info = blobstore.BlobInfo.get(resource)
    self.send_blob(blob_info)

Al final me imagino un procedimiento de servicio como este:

en @ endpoints.method:

obtener blob_key desde el almacén de datos

obtener imagen con blob_key

añadir imagen a StuffResponseMessage

envía StuffResponseMessage al front-end (aplicación de Android)

Mi enfoque es porque quiero proteger la privacidad de mis usuarios. ¿Alguna idea sobre cómo hacer esto bien?Mis fragmentos de código son generalmente del tutorial para desarrolladores de Google.

EDITAR:

No veo cómo pasaría blob_key del almacén de datos al siguiente método para recuperar la imagen:

from google.appengine.ext import blobstore
from google.appengine.ext.webapp import blobstore_handlers
class ServeHandler(blobstore_handlers.BlobstoreDownloadHandler):
  def get(self, resource):
    resource = str(urllib.unquote(resource))
    blob_info = blobstore.BlobInfo.get(resource)
    self.send_blob(blob_info)

Qué hay adentroresource, ¿de todas formas?

Respuestas a la pregunta(1)

Su respuesta a la pregunta