我有一个允许用户下载某些文件的站点。但是我想保持每个文件的下载计数,因此通过将静态文件放在不同的子域中然后让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/