从url压缩pdf文件

时间:2015-07-29 23:50:54

标签: javascript node.js express

我正在尝试使用archiver npm模块从现有链接压缩多个pdf文件。我能够将多个文件从内存或本地邮件压缩到我的机器上,但是当我在fs.createReadStream()中传递网址时,它无效。

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);
});

1 个答案:

答案 0 :(得分:1)

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' });