Google App Engine + Blobstore

gae-aws-sdk-logoEn la anterior entrada sobre nuestro proyecto BBVA Dining+ para el concurso InnovaApps+ vimos como utilizábamos el Cloud de Google para crear una API de manera sencilla para almacenar nuestros datos con Google App Engine (GAE).

En esta tercera entrada nos centraremos en la solución que adoptamos para almacenar imágenes.

Sin título

Nuestra primera preocupación fue elegir como almacenar los datos, habríamos podido utilizar el DataStorage como para la API de acceso a datos pero nos decantamos por el Blobstore ya que es más adaptado a este tipo de uso.

En efecto, el Blobstore está pensado para almacenar objetos pesados como imágenes, vídeos o cualquier tipo de documento de hasta 32Mb mientras que el DataStorage está más pensado para almacenar datos reduciendose el tamaño máximo permitido a solamente 1Mb.

Además el Blobstore es mucho más barato que el DataStorage. En el momento de escribir esta entrada, el coste mensual por Gb consumido era de 0.026 $ para el Blobstore y de 0.18$ para el DataStorage, ¡Casi 7 veces más barato!

Una vez solucionado la parte de almacenamiento nos quedaba decidir cómo consumir las imágenes guardadas el Blobstore.

Decidimos utilizar el ImageService que permite generar un enlace público (pero no predecible) de nuestras imágenes. Además permite personalizar el enlace para redimensionar y recortar automáticamente las imágenes al tamaño deseado, cosa que resultó muy útil en nuestra aplicación móvil para obtener por ejemplo imágenes más pequeñas en las listas gracias al redimensionado y también para asegurarnos de tener imágenes uniformes gracias al recortado. Otra ventaja es que las imágenes generadas son copias y por lo tanto son muy rápidas de acceso aunque nos ocupan un poco más espacio.

Otra opción habría sido crear un Servlet para acceder al Blobstore, lo que nos habría permitido utilizar todas las transformaciones de imágenes (rotar, invertir,…) o añadir una capa de seguridad pero el ImageService a secas cubría perfectamente nuestras necesidades.

Gracias a Google App Engine pudimos otra vez satisfacer nuestras necesidades sin apenas generar código gracias al Blobstore y al ImageService. Conseguimos poner en marcha un repositorio de imágenes rápido y versátil aunque cabe destacar que la interfaz de gestión del Blobstore es bastante limitada y que nos habría gustado tener más herramientas para gestionar nuestros datos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *