来自Google App Engine的网页中的静态图片

时间:2014-03-24 19:26:08

标签: java google-app-engine servlets google-cloud-storage

我将一个旧的Java项目移植到GAE。它有一些servlet,它们生成带有静态图像的html页面。在原始项目中,这些映像存储在servlet旁边的文件系统中。

我首先尝试使用GCS,我已经上传了我的文件并获得了公开阅读的权限。在这种情况下,我可以使用他们的公共链接访问文件,我可以将这些链接嵌入到HTML输出中。但我觉得这不是正确的解决方案。加载时间似乎很慢,就像图像不在内部旅行",我必须为每个图像提供许可。

所以我的问题是,如何获得"内部"位于GAE应用程序中GCS上的文件的URL?

我发现了一些Java examples,但在我的情况下,我认为我不需要源代码中的图像对象,我只需要一个URL将其传递给HTML源代码。

据我所知,我可以简单地使用源代码作为资源部署图像,但是有很多这些图像。

如果有其他灵魂,比如数据存储,我也会这样做,但我认为GCS是最简单的。

1 个答案:

答案 0 :(得分:1)

Google云端存储是加载图像的快捷选项。浏览器读取链接并要求服务器(在本例中为GCS)传送图像。没有“内部”URL可以更快地工作 - 速度反映了GCS和要求图像的浏览器之间的带宽/距离。

您可以使用CDN加速它,您的图像存储在全球的本地服务器上。只有向大量用户提供内容才有意义,而且这是页面加载速度的关键部分。

加快页面加载时间的另一种方法是使用图像精灵而不是图像。这样,您就可以减少从浏览器到服务器(即GCS)的请求数量。如果图像不经常更改,并且大多数页面需要相同的“图像集合”(即未动态显示),这是一个非常好的解决方案。