django - 在Django中使用逻辑服务静态文件(保持下载计数)

标签 django apache static mod-wsgi

我有一个允许用户下载某些文件的站点。但是我想保持每个文件的下载计数,因此通过将静态文件放在不同的子域中然后让apache来承担繁重工作的常规方法不是HttpResponse以及将用户重定向到子域的好方法因为这样用户可以“看到”正确的下载网址,因此可以在不增加下载次数的情况下下载文件。我可以建立一个 View ,然后为文件提供服务,但是我担心"big fat disclaimer"。您/您将如何实现?我很确定我不是唯一一个遇到这个问题的人。

关于平台:我正在使用apache和mod_wsgi。

谢谢

最佳答案

psj的答案绝对是一个可行的选择。您应该研究的另一种选择是在apache前面放置一个反向代理服务器,例如Perlbal,它支持“X-REPROXY-URL” header 。

设置了反向代理服务器后,无需向用户发送重定向响应,而是可以发送带有“X-REPROXY-URL” header 的响应,该 header 设置为代理服务器可以访问但用户可以访问的URL。 t。然后,代理服务器将从您在 header 中发送的位置读入文件,然后将其提供给客户端。他们将以一种高效的方式进行操作,并且由于您的Django应用服务器需要发送的所有内容都是带有 header 集的响应,因此可以自由处理其他请求。

关于django - 在Django中使用逻辑服务静态文件(保持下载计数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3835174/

相关文章:

java - 如何防止在另一个线程的静态调用上创建对象副本

python - 无法登录到 uwsgi 控制台

python - 如何使用 Django Rest Framework 在对象创建调用期间创建外键相关对象?

Django:如何通过命令创建组?

php - 如何在 Linux/Apache 虚拟主机上运行 win32 控制台应用程序?

php - 在 Apache (EC2) 上文件上传速度比用户的网络上传速度慢

php - 在服务器上加载扩展 gRPC 但 extension_loaded ('grpc' ) 在 PHP 中运行时返回 false

php - 将 arrayaccess 与静态类一起使用

django - 无法加载 Boto3 的 S3 绑定(bind)

c - 这个声明声明了什么?