2015-07-29 2 views
0

Я пытаюсь закрепить несколько файлов PDF из существующих ссылок, используя archiver модуль npm. Я могу заархивировать несколько файлов из памяти или локально на мою машину, но это не работает, когда я передаю URL-адреса в fs.createReadStream().Zip pdf файлы с url

fs.createReadStream() сообщает мне, что все, что мне нужно сделать, это передать путь к файлу, с которого я хочу передать данные. Я знаю, что я делаю что-то ужасно неправильно, не могу понять, что именно.

var archiver = require('archiver'); 
var archive = archiver('zip'); 

res.set('Content-Type', 'application/zip'); 
res.set('Content-Disposition', 'attachment; filename=123.zip'); 

archive.pipe(res); 

archive 
    .append(fs.createReadStream('https://URL-1-XXX.pdf'), { name: 'file1.pdf' }); 
    .append(fs.createReadStream('https://URL-1-XXX.pdf'), { name: 'file2.pdf' }); 

archive.finalize(function(err, bytes) { 
if (err) 
    throw err; 

console.log('done: ', bytes); 
}); 

ответ

0

fs.createReadStream используется для чтения файлов, хранящихся на диске, а не для HTTPS-запросов. Я бы посоветовал вам немного почитать документы API и заглянуть в модуль https.

Попробуйте вместо этого:

var request = require('request'); 
archive 
    .append(request.get('https://URL-1-XXX.pdf'), { name: 'file1.pdf' }); 
    .append(request.get('https://URL-1-XXX.pdf'), { name: 'file2.pdf' }); 
Смежные вопросы