我正在构建一个新的web应用程序。我使用了google appengine, jsf2, primefaces, java技术来构建这个web应用程序。我必须在这个web应用程序内建立一个动态图片库。Ie注册用户应该能够将图像加载到图库中,然后它应该可供公众观看。
我的问题是:1)应用引擎一次只允许最多1mb的文件写入blob存储。2)应用引擎不允许写入服务器文件系统。3)我是否应该将每个图像作为blob存储到gae数据库中?但如果我这么做,整个应用程序就会非常慢,因为可能会有很多图像。因此,从blob存储中读取图像会使它变慢,并且会消耗大量的处理能力。
我真的很困惑一个合适的解决方案,在网上找不到任何合适的建议。我很确定会有一个下降的解决方案!
这将是一个很大的帮助,如果有人在构建web应用程序的经验,处理大量的图像内容可以建议我一个很好的解决方案。
解决方案是在用户上传图像时使用上传url,这样它们就可以直接上传到Blobstore:
https://developers.google.com/appengine/docs/java/blobstore/Java_Uploading_a_blob
然后直接通过getServingUrl()
引用blob,而不是让应用程序尝试将它们读入内存。
你真的应该使用GCS (Google Cloud Storage),而不是blobstore。用户浏览器对存储在GCS中的图像的调用直接到那里,而不会向您的应用程序收费。