如何检索存储在文件服务器中的图像?

时间:2010-09-20 14:28:43

标签: java apache web-applications

我有一个java Web服务,通​​过它我可以将图像上传到文件服务器。我想从我的java web应用程序访问这些图像。 如何从此文件服务器中提供图像文件(以及最终的其他静态文件)?

我唯一能想到的就是使用Apache Http服务器作为这些图像的Web应用程序的代理,但这会绕过Web应用程序的安全措施。


更新

  1. Servlet容器:Tomcat
  2. Web应用程序与图像位于不同的服务器上。
  3. Web服务与图像位于同一服务器上,可直接访问文件系统。
  4. 网络应用和服务都使用Spring安全性进行身份验证/授权,我希望继续使用此安全框架进行图像访问。

3 个答案:

答案 0 :(得分:1)

如何存储文件?

如果安全性是一个问题,最好的选择可能是创建一个Servlet(或类似的东西),它将加载图像并在用户检查其凭据后将其提供给用户。

如何加载图像取决于它们是如何存储的,如果你可以通过HTTP访问它们,你总是可以从Servlet打开URLConnection到文件并直接以这种方式提供它(即使用Servlet作为一种代理服务器)。

如果没有更多细节,很难具体说明。

答案 1 :(得分:1)

我不确定这是否能解决您的问题,但听起来您应该设置一个上下文路径,将URL映射到服务器上的路径。这可以使用tomcat的上下文文件来完成。

有关解决方案的详细说明,请查看How to Program with Java

上的帖子

答案 2 :(得分:0)

听起来与Apache Hadoop类似。 请求图像/文件后,您必须进行API调用并将文件拉出并执行以下操作之一:

  1. 将临时文件存储到Web可访问服务器上的“temp”目录中。你需要在后台运行某种清洁/ gc来清理那些临时文件。这就是Facebook用照片做的事情。

  2. 不是在服务器上存储文件,而是检查文件类型并将HTTP Content-type标头设置为适当的文件类型。图片来源将显示为<img src="getPicture.jsp?id=1234" />