2014-04-14 26 views
0

我正在开发java Restful web服务(使用apache tomcat)中的服务器部分,我打算将它部署到云Web服务上。 我希望我的web服务为客户端(移动设备或浏览器)提供图像,用户可以稍后动态上传或替换图像。Java Web服务中的图像

问题1: 我应该在哪里存储服务器上的图像? 选项 - 1]。将图像保存在数据库中(作为blob) 2]。本地文件系统的服务器。

问题2: 如何处理客户端请求 个选项 1] .I可以在本地检索,并给该图像作为响应。 2]。我可以给图像的公共URL作为响应,客户端可以从这个URL下载它。

任何人都可以建议我选择什么样的选项来优化服务器端处理和存储成本,也是w.r.t安全。

回答

0

答案1:虽然它是一些辩论的主题,但通常的答案是:本地文件系统。您可以使用文件的位置和一些元数据在数据库中添加一个条目,但实际的二进制blob应该在文件系统上。

答案2:如果你只是传递一个公共URL,这就意味着你有一个公共http服务器可以访问并提供请求的图像。如果是这种情况,我会考虑选择这种方式,因为HTTP服务器可以优化开箱即用(例如缓存),并且可以提供重用(例如,使用公用URL在其他地方嵌入图像)。

+0

谢谢。我对公共http服务器知之甚少。由于图片可以是个人照片,我觉得使用URL会导致安全问题,对吗? – Piyush

+0

如果您是个人照片,您仍然可以使用URL方法,但我会建议保护HTTP端点。这当然可以最大限度地减少我的第二个答案的可重用性。但是,您可以让用户决定是要私人还是公共(默认私人)。 – nablex