【问题标题】:Azure Storage Calculation of Blob Container SizeBlob 容器大小的 Azure 存储计算
【发布时间】:2015-11-24 06:20:58
【问题描述】:

下面我有一个计算blob容器大小的外部函数

function getBlobContainerSize(container, callback) {
    storageClient.listBlobsSegmented(container, null, null, function(error, result) {
        var length=0,counter=result.entries.length;
        for (var i = 0; i < result.entries.length; i++) {
            getBlobSize(container, result.entries[i].name, function(size){
                length+=size;
                if(--counter===0) callback(length);
            });
        };
    });
}
function getBlobSize(container, blob, callback){
    storageClient.getBlobProperties(container, blob, function(err, result, response) {
        if(result==null) callback(0);
        else callback(parseInt(result.contentLength));
    }); 
}

结果是针对特定容器 20907510,在 Azure 存储资源管理器中我看到 84.03M。如果我错了,请纠正我,但这两者相差 64mb,与我的函数相比,Azure 存储资源管理器显示更多 mb。

【问题讨论】:

    标签: azure-storage


    【解决方案1】:

    考虑到您使用的是标准存储,您用于计算容器大小的方法可能不是 Azure 存储向您收费的大小。对于标准存储中的页面和块 Blob,Azure 存储会为存储的数据计费。更详细的信息可以从这里找到: http://blogs.msdn.com/b/windowsazurestorage/archive/2010/07/09/understanding-windows-azure-storage-billing-bandwidth-transactions-and-capacity.aspx

    您的方法将为您提供容器中所有 blob 的内容长度总和。 Azure-Storage 的收费可能仍然更低。

    【讨论】:

    • 嗯,Azure 存储资源管理器告诉我他们的账单是多少?
    • 我不这么认为。参考我之前分享的博客,按照公式\步骤计算大小。如果您使用的是块 blob 而没有快照,那么获得一个球场编号应该相当容易。页面 blob 和快照可能很棘手,因为 Azure 存储不会为空页面范围和任何数据计费两次......而且您必须跟踪此类页面才能正确预测实际大小。
    猜你喜欢
    • 2019-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-31
    • 2018-05-07
    • 2011-10-15
    • 1970-01-01
    相关资源
    最近更新 更多