在Azure节点js SDK中获取远程文件blob的MD5

时间:2013-09-05 10:10:44

标签: javascript node.js azure azure-storage-blobs

我正在编写一个备份脚本,它将在我们的Windows Azure blob存储中提取特定blob容器中每个文件的完整副本。这些文件不是我上传的,我只是编写一个遍历blob存储并下载文件的脚本。 为了加快这个过程并跳过不必要的下载,我想在下载之前为文件请求MD5,并将它们与已经本地的文件进行比较。

我的问题:我无法在任何地方找到详细说明如何执行此操作的文档。我很确定API支持它,我找到了文档并回答了与其他语言相关的问题,但不是Node.js Azure SDK。

我的问题:在下载之前,通过Azure Node.js SDK请求MD5获取远程文件blob是否可能,如果是,如何?它比下载文件更快吗?

1 个答案:

答案 0 :(得分:0)

当然可以获得blob的MD5哈希值。当您列出blob时,您将获得blob属性中的MD5。请参阅以下示例代码:

var azure = require('azure');
var blobService = azure.createBlobService("accountname", "accountkey");

blobService.listBlobs("containername", function(error, blobs){
    if(!error){
        for(var index in blobs){
            console.log(blobs[index].name );
            console.log(blobs[index].properties['content-md5'] );
        }
    }
});

显然,问题是blob应该设置此属性。如果未设置此属性,则返回空字符串。