NodeJS下载文件Linux句柄不断增加
发布于 6 年前 作者 im-here 3259 次浏览 来自 问答

标题可能取的不准确,描述下问题: 最近做了一个系统内包含一个下载.zip文件的功能,单个文件很小,最多就几百kb 现在发现在/proc/pid/fd 下的句柄数量不断增多,但是我自己在测试服上测试了下,又没有重现,不管怎么下载,都没有下载相关的句柄停留,不知道什么问题

下载代码如下:

  let mime = "text/plain";
  let file_path = path.join('..gm/', process.cwd(), 'uploads', file_name);
    fs.exists(file_path, function (exists) {
        if (!exists) {
            message.setCode(CODE.OBJECT_NOT_EXIST);
            return message.send();
        }
        //获得文件信息
        fs.stat(file_path, function (err, stats) {
            if (err) {
                message.setCode(CODE.FAIL);
                return message.send();
            }
            let content = fs.createReadStream(file_path, {flags: 'r'});

            res.writeHead(200, {
                'Content-Type': mime,
                "Content-Length": stats.size,
                'Content-Disposition': 'attachment; filename=' + file_name
            });
            content.pipe(res);
            content.on('end', function () {
                res.end();
            });
        });
    });

贴一部分句柄截图 66666.png

回到顶部