django+nginx+uwsgi实现大文件的上传与下载

上传文件

  • 上传利用的百度webuploader,参考链接如下:
    利用webuploader和flask实现文件的上传
    其中的flask代码通过简单修改变更为django代码,具体见此处
  • 上传文件如果提示错误 413 Request Entity Too Large 参考此处解决
  • nginx的配置中root,alias的使用区别
  • Nginx 的 internal 指令可以用来限制 Web 公共目录下的图片等资源文件被任意用户直接访问(只能内部访问)。一个明显的使用场景是,对于用户上传的认证图片,属于个人隐私资源,不应该让所有用户都能访问得到,通常只能由管理员审核时查看。

下载文件

  • 大文件的下载参考此文章来设置,采用的最后一种方式,使用nginx代理大文件的下载
  • 一点注意事项:
    • 不要用ajax发起针对projected的请求,否则浏览器不会提示下载,只会显示有响应内容在不断的返回,但是没有具体的下载位置,即不会触发浏览器的下载, 原因参见文章
    • 直接利用a标签绑定href来请求,直接出现下载了
    • 可以通过一下头信息来配置 X-Accel-Redirect 特性:
            X-Accel-Limit-Rate: 1024
            X-Accel-Buffering: yes|no
            X-Accel-Charset: utf-8

猜你喜欢

转载自blog.csdn.net/HYESC/article/details/81626756