我想为我的用户生成临时下载链接。 如果我使用 django 使用 url 模式生成链接可以吗? 这可能是正确的方法吗?因为可能会发生我不了解某些流程的工作原理。它会溢出我的内存或其他东西。某种示例或工具将不胜感激。可能是一些 nginx、apache 模块?
所以,我想实现的是制作依赖于用户和时间的 url 模式。描述它结束返回查看一个文件。
最佳答案
一个简单的方案可能是使用用户名和时间戳的哈希摘要:
from datetime import datetime
from hashlib import sha1
user = 'bob'
time = datetime.now().isoformat()
plain = user + '\0' + time
token = sha1(plain)
print token.hexdigest()
"1e2c5078bd0de12a79d1a49255a9bff9737aa4a4"
接下来,您将该 token 存储在带有过期时间的内存缓存中。这样您的任何网络服务器都可以访问它并且 token 将自动过期。最后为 '^download/.+' 添加一个 Django url 处理程序,其中 Controller 只是在 memcache 中查找该 token 以确定 token 是否有效。您甚至可以将要下载的文件名作为 token 的值存储在内存缓存中。
关于python - 使用 django 或任何 python 模块的链接生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5320730/