npm azure-storage下载文件为base64

时间:2018-06-07 07:37:19

标签: node.js azure azure-storage-blobs

我正在使用此package将文件从azure下载到本地节点服务器。但我不想将文件保存在本地服务器然后读取它转换为base64,我想直接将其转换为base64。我怎样才能做到这一点?

 this.blobService.getBlobToStream('pictures', path, fs.createWriteStream(`./src/temp/${filename}.jpeg`), function(error, result, response) {
                if (!error) {
                    resolve({ message: `Items in container pictures:`, data: result});
                } else {
                    reject(error);
                }
            });

1 个答案:

答案 0 :(得分:1)

内置节点仅支持ecnode Buffer类型为base64,因为您不想将Blob下载到本地服务器,您必须使用外部模块对{{1}进行编码}。

stream然后使用下面的代码。

npm install base64-stream

请注意,在later question中,您使用

指定var base64 = require('base64-stream'); ... this.blobService.createReadStream(container, path).pipe(base64.encode()).pipe(res);
Content-Type
应省略

res.header('Content-Type', properties['contentType']); 设置。在我的测试中,如果成功设置Content-Type,图像将作为附件下载,而不是显示为内联内容。您的代码成功,因为它实际上将Content-Type设置为Content-Type

您使用的属性是带有blob信息的BlobResult(Json格式)

undefined

所以BlobResult { container: xxx, ... contentSettings: { contentType: 'image/jpg', contentMD5: 'uNkt2WJ75X13TjQbfY7qkA==' }, ... } 应使用此格式contentType