CFContent的替代品?

时间:2010-12-13 21:35:27

标签: coldfusion

我目前将上传到CMS的文件存储在数据库中。我的问题并没有要求替代。我遇到的问题是从面向公众的Web服务器提供文件时。

理想情况下,我可以将文件缓存在文件系统中的Web服务器上,但是存在问题。系统允许使用相同的文件名上传不同的文件,我不想使用UUID或MD5哈希来缓存文件,因为我希望最终用户能够在保存对话框中使用文件名。

我对cfcontent的问题是

  1. 对文件的每个请求都会将文件加载到内存中,我不介意这样做一次来构建缓存。
  2. cfcontent不允许http下载分块,以便最终用户停止下载文件,然后尝试恢复该文件。
  3. 对大文件的请求过多会占用并发请求并强制正常页面请求进入队列。
  4. P.S。这些文件存储在数据库中,因为数据库是CMS和公共站点之间唯一的通信形式。

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

另外,我建议使用db中的主键作为目录名称,这样您就可以保留原始名称的文件,并将它们存储在服务器上的唯一位置

所以,假设某人上传了document.docx,并为其分配了ID 3.您的网址将指向/content/3/document.docx或类似内容。

答案 2 :(得分:0)

这是一个艰难的过程,就好像你在数据库中有你的图像一样,你需要某种Servlet来使它们可供终端浏览器使用。这意味着,除非您的数据库有某种方式将图像直接暴露给浏览器,否则必须进行一些内存处理。

您可以使用cfimage来显示它,但我希望它与您上面概述的问题完全相同。

我有一个quick look on Google,但找不到任何能满足你需求的东西(这很奇怪,我原以为会有什么东西),但写一个Servlet很容易将它部署在JRUN上,使用您想要的方式提供图像,具体取决于您的Java知识有多好。