我們有一個內容管理系統,允許我們的用戶存儲通過REST Web服務上傳的文件。在將這些文件存儲在存儲庫之前,它們的內容將被加密。臨時內存中的Java文件
檢索這些文件時,文件內容被解密,並放入一個字節數組中。其目的是將這些內容作爲文件附件傳遞給客戶端,以便將其存儲在本地計算機上。
爲此,我正在將內容存儲到臨時文件中,並將臨時文件作爲附件傳回。這種方法具有先前加密的存儲庫文件的不良副作用,被「清除」存儲在臨時目錄中。
我知道我可以將臨時文件設置爲當JVM結束時自動刪除,但由於這是一臺服務器,因此服務器重新啓動之間可能會有很長時間。
我也可以(我猜)設置某種偵聽器作業來定期檢查臨時目錄並刪除超過特定年齡的文件,但這看起來很麻煩並且不能真正解決問題 - 它只是縮短了曝光時間。
我正在尋找替代品來避免臨時文件,但仍允許用戶通過Web服務作爲附件下載(最好在內存中)文件。
有什麼想法?
謝謝!
不要使用deleteOnExit - 它僅適用於開發。它會泄漏文件名,直到整個JVM停止。 – bestsss 2011-06-16 15:34:09