下载解压缩上传clodinary

我正尝试下载一个ZIP文件,请求pipe道将其解压到node-unzip然后将其pipe理到cloudinary。

var stream = cloudinary.uploader.upload_stream(function(result) { console.log(result) }); request(file_url).pipe(unzip.Parse()).pipe(stream); //<-- This do not work! ERROR: { error: { message: 'Empty file', http_code: 400 } } fs.createReadStream('my_picture.jpg').pipe(stream); //<-- This works! 

(你没有提到,但我假设你的request var是一个请求的实例)

首先检查您的压缩文件是否有效,并包含您期望的内容:

(代码取自node-unzip的自述文件 )

 var unzip = require('unzip'); var request = require('request'); var fstream = require('fstream'); var writeStream = fstream.Writer('output/path'); request(file_url) .pipe(unzip.Parse()) .pipe(writeStream); 

然后,从一个zip文件发送一个条目(即使只有一个条目):

 var cloudinary = require('cloudinary'); var unzip = require('unzip'); var request = require('request'); var stream = cloudinary.uploader.upload_stream(function(result) { console.log(result) }); request(file_url) .pipe(unzip.Parse()) .on('entry', function (entry) { var fileName = entry.path; var type = entry.type; // 'Directory' or 'File' var size = entry.size; if (fileName === "your_image.png") { entry.pipe(stream); } else { entry.autodrain(); } });