清除asp.net中的temp Uploaded Files文件夹

时间:2011-08-11 07:10:37

标签: c# asp.net filesystems temporary-files

我想知道以下情况的最佳做法是什么:

用户在页面A上传文件。该文件存储在唯一的临时文件夹中(基于用户GUID)。用户被重定向到页面B,执行文件验证并最终重定向到页面C.

所有这些页面都使用用户上传的文件。

显然,在某些时候我想删除这些文件以防止服务器被临时文件填满。我想到了几个解决方案,但我想知道是否有更好的解决方案/哪一个是最好的。:

  • 解决方案1:在完成该过程后删除该文件(在本例中,在第c页上)。我不认为这是一个很好的解决方案,因为用户很可能在中途取消他的行动(第B页)。这仍然会导致临时文件留在服务器上

  • 解决方案2:在页面A的上传时,在主临时文件夹中进行检查,并删除所有文件&在过去x天内未使用的文件夹

  • 解决方案3(可能是最干净的):编写一个与解决方案2相同的小型控制台应用程序,并使用Windows任务计划程序安排它每天晚上运行一次

  • 解决方案4:与3相同,但在Windows服务中。我认为为此创建一个Windows服务有点过分。

现在,我很想说3是最干净的,但是因为对于我正在使用的应用程序来说似乎有点过分,我认为解决方案1& 2做个好的选择。

有任何建议/反馈吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我想说想法1和3的组合很棒。在作业完成后允许页面删除文件(清除您可以随时使用的内容,这样您就不会浪费存储空间)。然后,在网站的最不活跃时间内每天运行一次“备份”计划任务,并删除任何早于您确定的阈值的备用文件。

您不需要每天删除一次文件的长时间运行过程的开销(解决方案4)。

解决方案2特别突出我因为它降低了感知性能网站 - 删除文件需要时间,特别是当(HDD)磁盘被打碎时。