2013-03-22 45 views
0

什么是在服务器上命名和存储生成文件的最佳方式,例如,如果用户在接下来的5分钟内请求文件,则返回它,否则返回错误代码?我正在使用Python和Webapp2(尽管这将适用于任何WSGI服务器)。短时间在服务器上存储文件

+0

您有什么担忧?你想减少/消除重复名称的可能性吗?或者你为了安全起见也想要不可预测性? – gaige 2013-03-22 21:56:01

+0

在这种情况下,安全性并不重要。 – ian93 2013-03-23 00:43:41

+0

那么,你在寻找客户端还是服务器代码,或者只是一个机制?从问题中不清楚您要查找的细节层次。 – gaige 2013-03-23 10:13:27

回答

0

我建议在服务器上使用客户端创建的UUID,当服务器存储它时,向客户端发回错误(强制重试)。在大多数情况下,UUID将是完全独特的,不会与已存储的任何内容相冲突。如果确实如此,客户可以选择一个新名字并重试。如果您希望稍微好一些,请在两次重试之间等待几毫秒,以减少重复发生冲突的可能性。

这将是我对这种特定的,不安全的短期存储问题的处理方法。

至于删除,我会留在服务器的责任,以间隔删除它们,基本上检查是否有任何文件大于5分钟,并删除它们。只要进行中的下载将文件打开,它就不会中断。

如果你想留在控制客户端,你不会有一个简单的方法来强制删除当客户端处于脱机状态,所以我建议保持按日期顺序排列的文件列表并将其删除:

在后台线程,如果你希望运行时间长
  • 在启动时(这将需要持续的这些磁盘)作为必要
    • 在关机(不需要持续到磁盘)

    但是,如果您发生崩溃或丢失持久性信息,所有这些机制都容易在服务器上留下不必要的文件,所以我仍然建议将删除作为服务器的责任。

  • +0

    如何清理文件?确保在短时间内被删除的最佳方式是什么? – ian93 2013-03-23 15:00:42

    相关问题