将文件存储在服务器上一小段时间

时间:2013-03-22 20:45:33

标签: python webapp2 temporary-files

在服务器上命名和存储生成的文件的最佳方法是什么,如果用户在接下来的5分钟左右请求文件,则返回该文件,否则返回错误代码?我正在使用Python和Webapp2(虽然这适用于任何WSGI服务器)。

1 个答案:

答案 0 :(得分:0)

我建议在服务器上使用客户端创建的UUID,当服务器存储它时,将错误(强制重试)发送回客户端。在大多数情况下,UUID将是完全唯一的,不会与已存储的任何内容发生冲突。如果是,客户端可以选择一个新名称并重试。如果你想稍微好一点,在重试之间等待一段随机的毫秒数,以减少重复冲突的可能性。

这是解决这个特定的,不安全的短期存储问题的方法。

至于删除,我会让服务器负责定期删除它们,基本上检查是否有任何文件大于5分钟并删除它们。只要进程内下载使文件保持打开状态,就不应该中断。

如果您希望让客户端处于控制状态,那么当客户端处于脱机状态时,您将无法轻松地强制删除,因此我建议按日期顺序保留文件列表并删除它们:

  • 如果您希望长时间运行,则在后台线程中
  • 启动时
  • (需要将这些文件保存到磁盘)
  • 关机时
  • (不需要持久保存到磁盘)

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