javascript - NodeJs Microsoft Azure 存储 SDK 下载文件到流

标签 javascript node.js azure

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

但是,现在我开始查看文档,以便将我的文件下载为node_buffer(因此我不必使用fs.createWriteStream),但是文档没有给出任何有关其工作原理的示例。他们唯一写的是“还有多种下载文件的方法。例如,getFileToStream 将文件下载到流中:”,但他们只展示了一个示例,即使用 fs .createWriteStream,我不想使用它。

我在 Google 上也找不到任何对我真正有帮助的内容,所以我想知道是否有人有这方面的经验并且可以与我分享代码示例?

最佳答案

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

关于javascript - NodeJs Microsoft Azure 存储 SDK 下载文件到流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47491878/

相关文章:

javascript - jQuery容器Div高度不扩展

node.js - 如何使用 mocha 生成多个报告?

node.js - Npm 安装失败,出现 "cannot run in wd"

c# - LINQ 语句中的条件 IF 语句

azure - 保护 Azure 函数的安全

javascript - 错误类型错误 : Cannot read property 'clientId' of null

javascript - 用 Angular 覆盖按键

javascript - webpack 需要的动态文件路径?

Azure 通知中心的 Javascript 客户端

javascript - 如何一个接一个地对 CSS 转换命令进行排序