gpt4 book ai didi

javascript - 在上传到 AWS S3 时计算 Node.js 中本地文件的 ETag

转载 作者:太空宇宙 更新时间:2023-11-04 02:46:28 24 4
gpt4 key购买 nike

我目前正在尝试实现一个系统来验证我上传到 S3 的文件的完整性。通过适用于 JavaScript 的 AWS 开发工具包,我能够检索远程对象的 ETag,但是,我的本地对象的 MD5 哈希与 ETag 不匹配。我目前正在使用 crypto用于生成它,如下所示:

var hash = crypto.createHash('md5');
stream = fs.createReadStream(localfile);

stream.on('data', function (data) {
hash.update(data, 'utf8')
})

stream.on('end', function () {
md5 = hash.digest('hex');

< rest of the code >
});

根据我在寻找答案时发现的所有结果,S3 对象的 ETag 应该是简单的 MD5 哈希:例如 the AWS documentation (强调我的):

To ensure that data is not corrupted traversing the network, use the Content-MD5 header. When you use this header, Amazon S3 checks the object against the provided MD5 value and, if they do not match, returns an error. Additionally, you can calculate the MD5 while putting an object to Amazon S3 and compare the returned ETag to the calculated MD5 value.



但是,我的本地哈希与远程 ETag 不匹配。我在这里错过了什么吗?

谢谢你的时间!

澄清:我只上传小的纯文本文件,而不是处理多部分上传。我已经看到网络上的很多问题都与多部分上传有关,但这仅适用于简单的上传。谢谢!

最佳答案

键盘和椅子之间存在问题。问题在于实际文件上传,而不是 md5 总和。请参阅原始问题中的评论部分。

关于javascript - 在上传到 AWS S3 时计算 Node.js 中本地文件的 ETag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43380600/

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