2011-08-11 71 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

相关问题