我正在使用Request模块下载文件,但我不太确定如何将响应导流到输出流中,当文件名必须来自"Content-Disposition"头时。基本上,我需要读取响应直到找到头文件,然后将其余部分传输到该文件名。
示例显示了以下内容:
request('http://google.com/doodle.png').pipe(fs.createWriteStream('doodle.png'));
我想要执行以下伪代码:
var req = request('http://example.com/download_latest_version?token=XXX');
var filename = req.response.headers['Content-Disposition'];
req.pipe(fs.createWriteStream(filename));
我可以使用 Request 回调函数获取文件名:
request(url, function(err, res, body) {
// get res headers here
});
但这样做不会抵消使用管道并避免将下载的文件加载到内存中的好处吗?