2009-07-08 21 views
5

Estoy buscando escribir una aplicación web Java en Google App Engine. Quiero poder cargar y servir imágenes desde la aplicación, pero me acabo de dar cuenta de que el almacén de datos tiene un límite de 1 MB. Esto es un poco demasiado poco para imágenes decentes. ¿Hay alguna manera alternativa de sugerir esto? Tal vez almacenarlos como contenido estático en lugar de en el almacén de datos, pero parece que no hay API para esto.Almacenamiento de imágenes cargadas en Google App Engine con Java

Respuesta

4

Ahora es posible en GAE. Simplemente tiene que almacenar sus archivos en Blobstore. Puede cargar sus archivos de la siguiente manera:

<body> 
<form action="<%= blobstoreService.createUploadUrl("/upload") %>" method="post" enctype="multipart/form-data"> 
    <input type="file" name="myFile"> 
    <input type="submit" value="Submit"> 
</form> 

Y luego para servir archivo de servlet:

public void doGet(HttpServletRequest req, HttpServletResponse res) 
throws IOException { 
    BlobKey blobKey = new BlobKey(req.getParameter("blob-key")); 
    blobstoreService.serve(blobKey, res); 
1

Hoy no hay una manera fácil, pero eso puede cambiar más tarde.

Lo mejor que puede hacer ahora es votar (estrella) la solicitud para añadir soporte de sistema de archivos de Google a appengine en su seguimiento de incidencias:

2

No puede escribir en el sistema de archivos en App Engine, por lo que el contenido estático está fuera por ahora, pero una API para almacenar y publicar blobs está en la hoja de ruta. Mientras tanto, la mejor opción es dividir el archivo en fragmentos y almacenarlos en el almacén de datos o usar un servicio externo como S3.