通常,您必须设置策略。政策是for any uploaded file, the life time is 5 mins
。
Kniganapolke 的解决方案很好,可能是最便宜和最容易实施的。如果您不喜欢保留实际文件所在位置的信息(在您的服务器中,您不得向外界公开),您需要将其记录在您的数据库中。
但是有一个替代解决方案,从长远来看会更好。
排个队。是的。Cron 作业是要走的路,因为您必须考虑用户何时关闭 FireFox。我们真的要编写一些 javascript 来检查用户是否正在关闭 Firefox 吗?我不知道该怎么做,因为我不是 javascript 人。恐怕真的不容易。但我们不想处理 shell 脚本或低级系统命令。用 Python 做吗?这意味着不要使用 cron 作业。
策略是,根据需要将尽可能多的东西放入队列中。将上传添加到队列中,抛出返回(显示链接),然后抛出删除策略(检查当前时间是否超过 5 分钟),如果不是,则将相同的策略返回到队列中。
您想要一个任务队列,例如Celery(仅举一个我的最爱)
这些分布式任务队列对于上传图片、修改然后返回 url 等 Web 服务会更理想。您不希望您的服务被阻塞(如果转换需要 1 分钟怎么办)?如果您没有正确设置,您的服务器人员(例如 apache 或 nginx)可能会在内部超时。你也不要让超时时间过长,否则会带来灾难。
使用任务队列,您现在可以扩展您的 Web 服务。这将使您未来的项目变得更好。
一些读数
http://bitkickers.blogspot.com/2010/07/djangocelery-quickstart-or-how-i.html
python的作业队列实现