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