加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

javascript – Nginx node.js表示下载大文件停在1.08GB

发布时间:2020-12-13 21:39:00 所属栏目:Nginx 来源:网络整理
导读:我有这个由Nginx代理的node.js应用程序(正在制作中).路线是这样的: exports.download = function(req,res){ var id = req.params.id; if (id id == 'latest') { res.download(config.items.release_directory+'/ 因此,单击正确的路径/ URL,浏览器开始下载大

我有这个由Nginx代理的node.js应用程序(正在制作中).路线是这样的:

exports.download = function(req,res){

    var id = req.params.id;

    if (id && id == 'latest')
    {
        res.download(config.items.release_directory+'/<1.6GB-file>.zip',function(err){
            if (err) {
                console.log(err);
            } else {
                // do something
            }
        });
    }
    else
    {
        res.redirect(301,'/');
    }

};

因此,单击正确的路径/ URL,浏览器开始下载大文件,但随后它始终停止在1.08GB(文件大约为1.6GB),截断它.

我真的不明白为什么.有任何想法吗?

编辑:
config.items.release_directory是一个静态Express目录,声明为:

app.use('/releases',express.static(path.join(__dirname,'..','releases')));

EDIT2:
在没有Nginx的情况下使用grunt直接服务应用程序的开发它可以正常工作.

求助:阅读下面的评论,问题是Nginx中的proxy_max_temp_file_size变量

最佳答案
这里的问题是nginx配置,而不是nodejs代码.

nginx在将临时文件发送到客户端之前将其写入磁盘,如果站点要提供大型静态文件,通常最好禁用此缓存,例如:

location / {
    proxy_max_temp_file_size 0;
}

(没有限制)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读