python - 使用 django 或任何 python 模块的链接生成器

标签 python django

我想为我的用户生成临时下载链接。 如果我使用 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/

相关文章:

python - Windows 服务器上的 Django MySQL 连接错误

python - 如何向 PYTHONPATH 添加一些东西?

django - PostGIS 最近邻搜索结果乱序?

python - 使用 Pandas 比较具有不同行值和坐标的两个 Excel 电子表格

python - 从文本文件中删除单个值

python - PyGObject GTK+ 3 - 文档?

python - 在Pygame中绘制五边形、六边形

python - 安装和使用 pip, "SyntaxError: invalid syntax"

python - 如何在 Django 中为我的模型设置两个主键字段?

预填充数据库的 Django 测试脚本