您需要实现所谓的“X-Sendfile 功能”。假设您的付费文件将从位置提供/protected/- 您需要添加到 nginx 的配置:
location /protected/ {
internal;
root /some/path;
}
Run Code Online (Sandbox Code Playgroud)
那么当你想为你的用户服务时,一个名为mycoolflix.mp4你的应用程序的文件需要添加标题X-Accel-Redirect: /protected/mycoolflix.mp4,该文件/some/path/protected/mycoolflix.mp4将被提供给用户。此处和此处的 nginx 文档中的更多信息。从您的视图提供文件不是一个好主意 - 它使您的 Django 进程之一在下载完成之前一直处于忙碌状态,从而阻止它为其他请求提供服务。