【发布时间】:2011-06-16 15:18:01
【问题描述】:
我们有一个内容管理系统,允许我们的用户存储通过 REST Web 服务上传的文件。在将这些文件存储到存储库之前,它们的内容会被加密。
在检索这些文件时,文件内容被解密,并放入一个字节数组中。目的是将这些内容作为文件附件传回给客户端,他们可以将其存储在本地计算机上。
为此,我目前将内容存储到临时文件中,并将临时文件作为附件传回。这种方法具有先前加密的存储库文件的令人讨厌的副作用,即“明文”存储在临时目录中。
我知道我可以将临时文件设置为在 JVM 结束时自动删除,但由于这是一个服务器,服务器重新启动之间可能需要很长时间。
我也可以(我猜)设置某种侦听器作业来定期检查临时目录并删除超过一定年龄的文件,但这似乎很麻烦并且并不能真正解决问题 - 它只是缩短了曝光时间.
我正在寻找替代方法来避免临时文件,但仍允许用户通过网络服务下载(最好在内存中)文件作为附件。
有什么想法吗?
谢谢!
【问题讨论】:
-
不要使用 deleteOnExit - 它仅对开发有用。它会泄漏文件名,直到整个 JVM 停止。
标签: java web-services rest content-management