【发布时间】:2014-09-22 06:39:39
【问题描述】:
我有这个由 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')));
编辑2: 在没有 Nginx 的情况下,使用 grunt 直接为应用程序提供服务的开发工作正常。
已解决:阅读下面的 cmets,问题是 Nginx 中的 proxy_max_temp_file_size 变量
【问题讨论】:
-
另一个奇怪的行为是:如果我从浏览器单击 url,它会发生这种情况,但如果我 curl/wget URL,我可以完全接收文件。
标签: javascript node.js file express nginx