Я использую модуль 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
});
Но разве это не отрицает преимущества использования канала, а не загружает загруженный файл в память?