如何使用 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