【发布时间】:2017-01-23 00:32:14
【问题描述】:
我正在尝试使用 HTTP GET 请求远程下载 MP4 文件。当 HTTP GET 响应被传送到文件时,文件正在被完美写入 (~3MB)。
request.get('http://url.tld/video.mp4').pipe(fs.createWriteStream('video.mp4'))
但是,当fs.writeFileSync 函数正在写入 HTTP GET 响应正文时,它会创建一个更大的文件 (~7MB),并且由于损坏而无法执行。
request.get('http://url.tld/video.mp4', function(err, res, body){
fs.writeFileSync('./video.mp4', body)
});
为什么会这样?管道函数是否为相应的文件设置了正确的编码?
【问题讨论】: