【发布时间】:2016-05-10 04:20:04
【问题描述】:
我正在编写一个脚本,该脚本使用适用于 NodeJS 的 Azure SDK 下载 Blob 列表,并将 Blob 重新上传到不同的存储容器。
var service = azure.createBlobService();
// download file
service.getBlobToLocalFile(fromContainer, blob, localBlob, function(err, resp){ // resp here contains the MD5 hash
// re-upload file specifying hash
service.createBlockBlobFromLocalFile(toContainer, blob, localBlob, {contentMD5: resp.contentMD5}, function(error){}); // error here contains MD5 mis-match error
});
一些 blob(并非全部)在上传时抛出错误,指出来自 blob 的 MD5 哈希不正确,即使我从 getBlob 操作传递 MD5 哈希:
Error: The MD5 value specified in the request did not match with the MD5 value calculated by the server.
此错误仅发生在某些 blob 上。其他 blob 上传成功,表示 MD5 哈希正确。
我的问题分为两部分:
- 如果我在下载 blob 时传递从 Azure 接收的值,MD5 哈希怎么可能不正确?
-
Azure 如何计算其 MD5 哈希?我无法重新计算哈希,因为他们正在对 MD5 哈希进行一些其他加密/操作以将其置于不同的格式,并且我找不到关于他们如何编码 MD5 哈希的文档。这是来自 Azure 的示例“MD5”哈希,显然不是 MD5 格式:
8kz7pLKnPFlF5G6gy+0rrg==
谢谢。
【问题讨论】:
标签: node.js azure md5 azure-storage