我正在将一个旧的Java项目移植到GAE。它有一些servlet,它们生成带有静态图像的html页面。在原始项目中,这些映像存储在Servlet旁边的文件系统中。
首先,我尝试使用GCS,我已经上传了文件并授予了公众阅读权限。在这种情况下,我可以使用其公共链接访问文件,可以将这些链接嵌入HTML输出。但是我感觉这不是正确的解决方案。加载时间似乎很慢,就像图像不是“内部旅行”一样,我必须为每个图像提供许可。
所以我的问题是,如何为GAE应用程序中位于GCS上的文件获取“内部” URL?
我找到了一些Java examples,但就我而言,我认为不需要源中的图像对象,只需要一个URL即可将其传递给HTML源。
据我所知,我可以简单地使用源作为资源来部署映像,但是其中有很多。
如果还有其他想法,例如数据存储,我也很乐意,但是我认为GCS是最简单的。
最佳答案
Google Cloud Storage是加载图像的最快选择。浏览器读取链接并要求服务器(在本例中为GCS)传递图像。没有“内部” URL可以更快地工作-速度反映了GCS和要求图像的浏览器之间的带宽/距离。
您可以使用CDN来加快速度,将图像存储在世界各地的本地服务器上。仅当您向大量用户提供内容时才有意义,这是页面加载速度的关键部分。
加快页面加载时间的另一种方法是使用图像精灵而不是图像。这样,您可以减少从浏览器到服务器(即GCS)的请求数量。如果您的图片不经常更改,并且大多数页面都需要相同的图片“集合”(即未动态显示),那么这是一个很好的解决方案。
关于java - Google App Engine中网页中的静态图片,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22618766/