使用pkgcloud从Rackspace下载获取缓冲区

这可能是不可能的,但我试图使用pkgcloud模块返回Rackspace上的图像的缓冲区对象,而不必写入文件系统。 我已经看过这个过程,但是这两个例子都显示了下载到文件系统的过程。

function get() { return new Promise(function (resolve, reject) { _this._RackClient.download(options, function(err, results) { if (err !== null) { return reject(err); console.log("Errow Downloading:", err); } resolve(buffer); }); }); } return get(); 

这是理想的,我希望它能工作,但目前没有一个机构在请求。 我可以使用stream.passThrough()并返回类似于上传缓冲区?

.download()返回一个Readablestream,所以它应该只是缓冲输出的问题。 例如:

 var stream = _this._RackClient.download(options); var buf = []; var nb = 0; var hadErr = false; stream.on('data', function(chunk) { buf.push(chunk); nb += chunk.length; }).on('end', function() { if (hadErr) return; switch (buf.length) { case 0: return resolve(new Buffer(0)); case 1: return resolve(buf[0]); default: return resolve(Buffer.concat(buf, nb)); } }).on('error', function(err) { hadErr = true; reject(err); });