2011-08-11 118 views
0

我想知道什麼是最好的做法是以下情形:清除臨時文件上傳文件夾

的用戶會上傳網頁A上的文件存儲在一個唯一的臨時文件夾中的文件(基於用戶GUID)。用戶被重定向到頁面B,其中文件的驗證被執行並且最終被重定向到頁面C.

所有這些頁面使用用戶上傳的文件。

顯然,在某些時候,我想刪除這些文件以防止服務器塞滿臨時文件。我有一對夫婦浮現在腦海中的解決方案,但我不知道是否有更好的解決方案/這其中的一個是最好的:

  • 解決方案1:刪除文件後,過程完成(在這種情況下,在頁面c上)。我認爲這不是一個好的解決方案,因爲用戶很可能會在某處中途取消他的動作(頁面B)。這仍然會導致臨時文件保留在服務器上

  • 解決方案2:在頁面A上加載時,檢查主臨時文件夾中的內容,並刪除所有文件,這些文件夾最後一次未使用過X天

  • 解決方案3(這可能是最乾淨的):寫一個小控制檯應用程序,將做同樣的解決方案2,並與Windows任務計劃安排它在夜間每天一次運行

  • 解決方案4:與3相同,但在Windows服務中。我認爲爲此創建一個Windows服務有點矯枉過正。

現在,我想說3是最乾淨的,但因爲它似乎對我有應用程序有點大材小用,我認爲解決方案1的組合& 2做一個很好的選擇。

任何建議/反饋?

謝謝!

回答

0

我想說,想法1和3的組合是偉大的。允許頁面在作業完成後刪除文件(清除可以隨意移動的內容,以免浪費存儲空間)。然後,在您網站的最短活動時間內每天運行一次「備份」計劃任務,並刪除超過您確定的閾值的任何備用文件。

您不需要每天刪除一次文件的長時間運行進程的開銷(解決方案4)。

解決方案2對我來說特別引人注目,因爲不好,因爲它降低了感知性能網站 - 刪除文件需要花費時間,特別是當(HDD)磁盤被損壞時。

+0

是的,我理解你的觀點。但是,我們正在討論我們如何談論+/- 50 KB的Excel文件(所有文件需要使用相同的模板),並且每天肯定不會超過30個文件,而靈活性是一個重要的因素,我認爲我們可能會考慮性能問題而不是具有單獨的任務,這也將需要在我們部署小型站點的每臺服務器上重新部署。此外,如果臨時文件夾更改,更改將不得不反映在2個應用程序.... – Nathan

相關問題