gpt4 book ai didi

node.js - 获取流的 MD5 然后将流传递给 Node.js 中的阅读器的最佳方法

转载 作者:搜寻专家 更新时间:2023-10-31 23:49:36 26 4
gpt4 key购买 nike

我正在解析一封电子邮件,每当我点击附件时,我都想将附件上传到 S3。每当找到附件时,我都会得到一个附件流。我想获取附件的MD5sum,然后再次使用流将其上传到S3。

有没有办法在不先将流写入文件、计算 MD5、然后从文件生成可读流并将流发送到 knox(这将是 3 次流读取)的情况下执行此操作?

parser.on("attachment", function(attachment){
//Calculate MD5 sum
var md5sum = '';
s3client.putStream(attachment.stream, 'blah.jpeg', {
'md5sum': md5sum
}, function(err, res) {});
});

最佳答案

我认为这应该行得通吗?

var crypt = require("crypto")

function hashFile(attachment){
var hash = crypt.createHash("md5")
.update(attachment)
.digest("base64");


console.log(hash);
}

hashFile("some attachment blah");

您传入的附件经过 MD5 哈希处理并返回 base64 编码(您也可以在摘要方法中指定二进制或十六进制)

更新 好的,所以我查看了邮件解析器并注意到它在帮助中的内容:

https://github.com/andris9/mailparser#default-behavior

请注意校验和属性的提及。

现在看这里的第 283 行:https://github.com/andris9/mailparser/blob/master/lib/mailparser.js

那个校验和就是你想要的 MD5。

所以只要执行 attachment.checksum 就可以了

关于node.js - 获取流的 MD5 然后将流传递给 Node.js 中的阅读器的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11020166/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com