我刚刚开始使用针对NodeJS的Microsoft Azure存储SDK(https://github.com/Azure/azure-storage-node),并已成功将我的第一个pdf文件上传到云存储。
但是,现在我开始查看文档,以便将我的文件作为node_buffer下载(所以我不必使用fs.createWriteStream),但是文档没有提供任何有关其工作原理的示例。他们唯一写的是"还有几种下载文件的方法。例如,getFileToStream将文件下载到流:" ,但之后它们只显示一个示例,即使用fs.createWriteStream,我不想使用它。
我也无法在谷歌上找到任何对我有帮助的东西,所以我想知道是否有人有这方面的经验并可以与我分享代码样本?
答案 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
}
});