当前位置: 首页 > 知识库问答 >
问题:

azure function triggers azure blob storage

龙承颜
2023-03-14

我需要在nodejs中编写一个azure函数,用于压缩在azure blob存储中上传的任何文件。我有这段代码可以完成这项工作

const zlib = require('zlib');
const fs = require('fs');

const def = zlib.createDeflate();

input = fs.createReadStream('file.json')
output = fs.createWriteStream('file-def.json')

input.pipe(def).pipe(output)

the azure function

nodejs函数的定义如下

module.exports = async function (context, myBlob) {

其中myBlob包含文件的内容。

现在压缩使用流

如何将文件内容转换为流并将转换后的文件(在上面的脚本中是输出变量)保存为blob存储中但在另一个容器中的新文件?

谢谢你们

共有1个答案

岳硕
2023-03-14

JavaScript和Java函数将整个blob加载到内存中,可以使用context.bindings.Name.访问(其中Name是function.json文件中指定的输入绑定名称。)

有关更多详细信息,请查看Azure函数的Azure Blob存储触发器

由于字符串/内容已经存在于内存中,因此使用< code>zlib就不需要流了。下面的代码片段使用< code>zlib中的< code>deflateSync方法来执行压缩。

var input = context.bindings.myBlob;
    
var inputBuffer = Buffer.from(input);
var deflatedOutput = zlib.deflateSync(inputBuffer);

//the output can be then made available to output binding
context.bindings.myOutputBlob = deflatedOutput;

你可以参考这里的链接来讨论这个话题。

 类似资料:

相关问答

相关文章

相关阅读