NodeJs Microsoft Azure Storage SDK将文件下载到流

时间:2017-11-26 00:27:38

标签: javascript node.js azure

我刚刚开始使用针对NodeJS的Microsoft Azure存储SDK(https://github.com/Azure/azure-storage-node),并已成功将我的第一个pdf文件上传到云存储。

但是,现在我开始查看文档,以便将我的文件作为node_buffer下载(所以我不必使用fs.createWriteStream),但是文档没有提供任何有关其工作原理的示例。他们唯一写的是"还有几种下载文件的方法。例如,getFileToStream将文件下载到流:" ,但之后它们只显示一个示例,即使用fs.createWriteStream,我不想使用它。

我也无法在谷歌上找到任何对我有帮助的东西,所以我想知道是否有人有这方面的经验并可以与我分享代码样本?

1 个答案:

答案 0 :(得分:1)

getFileToStream函数需要一个可写流作为参数。如果您希望将所有数据写入Buffer而不是文件,则只需创建自定义可写流。

const { Writable } = require('stream');

let bufferArray = [];
const myWriteStream = new Writable({
    write(chunk, encoding, callback) {
        bufferArray.push(...chunk)
        callback();
    }
});

myWriteStream.on('finish', function () {
    // all the data is stored inside this dataBuffer
    let dataBuffer = Buffer.from(bufferArray);
 })

然后将myWriteStream传递给getFileToStream函数

fileService.getFileToStream('taskshare', 'taskdirectory', 'taskfile', myWriteStream, function(error, result, response) {
  if (!error) {
    // file retrieved
  }
});