¿Por qué el código de carga de blobstore tiene url de redireccionamiento?

Me imagino que el proceso de usar el blobstore para almacenar imágenes termina en guardar la clave blob en el almacén de datos. Así que en el siguiente código, que se supone que está en mi back-end, ¿por qué necesito una URL de redirección ya que ya tengo la clave de blob? ¿Por qué no sólo guardar la clave de blob en mi almacén de datos y luego devolverlo?

public class Upload extends HttpServlet { private BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService(); public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { Map<String, BlobKey> blobs = blobstoreService.getUploadedBlobs(req); BlobKey blobKey = blobs.get("myFile"); if (blobKey == null) { res.sendRedirect("/"); } else { res.sendRedirect("/serve?blob-key=" + blobKey.getKeyString()); } } } 

Este código es del tutorial: https://developers.google.com/appengine/docs/java/blobstore/overview#Complete_Sample_App

Debido a que Google almacena las imágenes en un servicio diferente (utilizado por Picassa también). El objetivo es optimizar el almacenamiento y proporcionar al desarrollador algunas herramientas para manipular esas imágenes fácilmente.

Consulte esta referencia en la documentación para ver qué puede hacer: https://developers.google.com/appengine/docs/java/images/overview

Para evitar la redirección, utilice este método para publicar imágenes: getServingUrl ()

De la documentación:

El método getServingUrl () le permite generar una URL estable y dedicada para publicar imágenes en miniatura de imágenes web adecuadas. Simplemente almacene una copia única de su imagen original en Blobstore y, a continuación, solicite una URL por imagen de alto rendimiento. Esta URL especial puede servir a esa imagen redimensionada y / o recortada automáticamente. La publicación de esta URL no supone ninguna carga dinámica o de CPU en la aplicación (aunque el ancho de banda sigue cargado como de costumbre). Las imágenes se sirven con baja latencia desde una infraestructura altamente optimizada y sin cookies.

  • Google App Engine con Android: prueba de puntos finales en dispositivos reales
  • El arrancador de backend móvil no puede escribir el ID personalizado en el almacén de datos
  • Protección de los extremos de la API de Google App Engine
  • Uso de la versión personalizada de la aplicación de App Engine en Android
  • Función User.getUserId () en el punto final de nube api devuelve null para un objeto de usuario que no es nulo
  • Configuración de Proguard al utilizar la plantilla Google Cloud Endpoints de Android Studio
  • Uso de la biblioteca cliente desde los puntos finales de Cloud. Jar importación no funciona
  • Error: Error al encontrar: com.google.guava: guava: 18.0. +
  • Inicia sesión de Google en la aplicación de Android para consumir Cloud Endpoints backend
  • Autenticación personalizada en Google Cloud Mobile Backend Starter en Android
  • Puntos finales de Google Cloud y autenticación del usuario
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.