Node.js 如何使用azure函数在blob触发器上生成大型blob文件的校验和?
我想为blob中上传的大文件(大约1GB)创建校验和(MD5)。我使用blob触发器azure函数。任何方法。目前,我的代码是Node.js 如何使用azure函数在blob触发器上生成大型blob文件的校验和?,node.js,azure,azure-functions,md5sum,azure-blob-trigger,Node.js,Azure,Azure Functions,Md5sum,Azure Blob Trigger,我想为blob中上传的大文件(大约1GB)创建校验和(MD5)。我使用blob触发器azure函数。任何方法。目前,我的代码是 const { exec } = require('child_process'); function execShellCommand(cmd) { return new Promise((resolve, reject) => { exec(cmd, (error, stdout, stderr) => {
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
您不必自己计算MD5。默认情况下,Azure Blob存储会自动为您计算此值 您可以通过此属性访问:
myBlob.properties.contentMD5
当触发器触发时,不是已经为您计算好了吗
myBlob.properties.contentMd5
——我不是javascript高手,但我可以通过在C#/)中调用myBlob.properties.contentMd5
来获得它。NETI检查过,它有空值。我们是否必须启用自动计算md5的任何选项?blob由adf作业存储在容器中。有时,我必须调用一个方法才能使用它:myBlob.fetchAttributes()
——该对象上是否有类似的方法?这将要求服务器填写properties对象。谢谢,@Andy,我可以在myBlob.properties.contentMD5
中找到它。我只是想确认一件事。azure是否默认为所有文件计算md5?我将添加一个答案在触发时是否已经为您计算了myBlob.properties.contentMd5
——我不是javascript高手,但我可以通过在C#/)中调用myBlob.properties.contentMd5
来获得它。NETI检查过,它有空值。我们是否必须启用自动计算md5的任何选项?blob由adf作业存储在容器中。有时,我必须调用一个方法才能使用它:myBlob.fetchAttributes()
——该对象上是否有类似的方法?这将要求服务器填写properties对象。谢谢,@Andy,我可以在myBlob.properties.contentMD5
中找到它。我只是想确认一件事。azure是否默认为所有文件计算md5?我将添加一个答案