代码之家  ›  专栏  ›  技术社区  ›  Simon

在Tomcat中,将文件系统上的文件夹映射到url的最简单方法是什么?

  •  2
  • Simon  · 技术社区  · 14 年前

    这是我的问题。。。我有一个小的原型应用程序(碰巧在AWS上托管的Grails中),我想添加用户上传一些(最多10张)图片的能力。我想将这些图像保存在服务器机器上的磁盘上,保存在WAR之外的文件夹位置。

    我意识到,可能有一个超级可扩展的解决方案,涉及更多的Web服务器和优化的静态资产服务,但对于大概100个用户,我很可能得到,这是不值得的努力和成本。

    那么,什么是让虚拟文件夹从url映射到磁盘上物理文件夹的最简单方法?我有点想。。。

    http://myapp.com/static
    

    映射到我可以配置的文件夹,例如。

    /var/www/static
    

    所以我可以在我的代码中。。。

    <img src="/static/user1/picture.jpg"/>
    

    我并不特别介意生成的物理文件夹是否可以直接浏览。安全问题最终会成为一个问题,但这不是一开始。

    那么,我有什么选择?我看过apache站点上的虚拟主机,但感觉比我需要的要复杂得多。

    我不想使用Grails静态渲染插件。

    1 回复  |  直到 14 年前
        1
  •  0
  •   Community Mr_and_Mrs_D    7 年前

    我也遇到了类似的问题,最终构建了自己的servlet来读取文件并将其流式传输到输出。问题是,如果您不支持mime类型、gzip、etag和缓存头(例如Last Modified),这可能会非常低效。最后我编写了所有这些代码(并使用ehcache进行服务器端缓存),但这并不简单。

    然而,这个StackOverflow问题有很多有用的答案。

    What is the simplest way to map a folder on the file system to a url in Tomcat?

    其中一个更吸引人的选择似乎是FileServlet。

    http://balusc.blogspot.com/2009/02/fileservlet-supporting-resume-and.html