如何使用 azure 函数在 blob 触发器上生成大型 blob 文件的校验和?
how to generate checksum of large blob file on blob trigger using azure function?
我想为 blob 中上传的大文件(大约 1 GB)创建校验和 (MD5)。我使用 blob 触发 azure 函数。任何方法。目前,我的代码是这样
const {
exec
} = require('child_process');
function execShellCommand(cmd) {
return new Promise((resolve, reject) => {
exec(cmd, (error, stdout, stderr) => {
if (error) {
console.log(error);
}
resolve(stdout? stdout : stderr);
});
});
}
module.exports = async function (context, myBlob) {
context.log(myBlob.toString());
context.log(context.bindingData.blobTrigger);
const data = myBlob.toString();
const output = await execShellCommand(`echo -n ${data} | md5sum`);
context.log(output);
context.bindings.outputBlob = output;
};
但这不能处理大文件
您不必自己计算 MD5。默认情况下,Azure Blob 存储会自动为你计算。
您可以通过此 属性:
myBlob.properties.contentMD5
我想为 blob 中上传的大文件(大约 1 GB)创建校验和 (MD5)。我使用 blob 触发 azure 函数。任何方法。目前,我的代码是这样
const {
exec
} = require('child_process');
function execShellCommand(cmd) {
return new Promise((resolve, reject) => {
exec(cmd, (error, stdout, stderr) => {
if (error) {
console.log(error);
}
resolve(stdout? stdout : stderr);
});
});
}
module.exports = async function (context, myBlob) {
context.log(myBlob.toString());
context.log(context.bindingData.blobTrigger);
const data = myBlob.toString();
const output = await execShellCommand(`echo -n ${data} | md5sum`);
context.log(output);
context.bindings.outputBlob = output;
};
但这不能处理大文件
您不必自己计算 MD5。默认情况下,Azure Blob 存储会自动为你计算。
您可以通过此 属性:
myBlob.properties.contentMD5