在服务器上命名和存储生成的文件的最佳方法是什么,如果用户在接下来的5分钟左右请求文件,则返回该文件,否则返回错误代码?我正在使用Python和Webapp2(虽然这适用于任何WSGI服务器)。
答案 0 :(得分:0)
我建议在服务器上使用客户端创建的UUID
,当服务器存储它时,将错误(强制重试)发送回客户端。在大多数情况下,UUID将是完全唯一的,不会与已存储的任何内容发生冲突。如果是,客户端可以选择一个新名称并重试。如果你想稍微好一点,在重试之间等待一段随机的毫秒数,以减少重复冲突的可能性。
这是解决这个特定的,不安全的短期存储问题的方法。
至于删除,我会让服务器负责定期删除它们,基本上检查是否有任何文件大于5分钟并删除它们。只要进程内下载使文件保持打开状态,就不应该中断。
如果您希望让客户端处于控制状态,那么当客户端处于脱机状态时,您将无法轻松地强制删除,因此我建议按日期顺序保留文件列表并删除它们:
但是,如果崩溃或丢失持久性信息,所有这些机制都容易在服务器上留下不必要的文件,因此我仍然建议将删除作为服务器的责任。