Azure存储块Blob上的小文件

时间:2016-02-02 12:33:36

标签: azure azure-storage-blobs

我们使用Azure存储来存储大量小文件(每个大约200个字节)。每个文件都在块blob上。如果我将1000个这样的文件存储在单独的块blob上,那么我的存储空间是什么:1000 * 200 = 200KB或1000 * 4MB(块blob大小)= 4GB?存储仪表板上有很多信息,但是我无法找到有关总空间的任何信息。

1 个答案:

答案 0 :(得分:2)

它将是200KB(所有文件的总大小)。

关于查找这些文件占用的空间总大小,您可以使用存储分析。 Blob存储大小信息存储在$MetricsCapacityBlob表中(请注意,这是一个特殊的表,当您尝试列出存储帐户中的表时,该表不包含在结果中)。您可以在此处找到有关此表格架构的更多信息:https://msdn.microsoft.com/en-us/library/azure/hh343264.aspx

如果您使用.Net Storage Client库,则可以使用以下代码找到日期的Blob存储大小:

        var account = new CloudStorageAccount(new StorageCredentials(accountName, accountKey), true);
        var cloudAnalyticsClient = account.CreateCloudAnalyticsClient();
        var yesterday = DateTime.UtcNow.AddDays(-1).Date;
        var query = cloudAnalyticsClient.CreateCapacityQuery().Where(f => f.PartitionKey == yesterday.ToString("yyyyMMddT0000") && f.RowKey == "data").AsTableQuery();
        var queryResult = cloudAnalyticsClient.GetCapacityTable().ExecuteQuery(query);
        foreach (var item in queryResult)
        {
            Console.WriteLine(item.PartitionKey + " : " + item.RowKey + " : " + ((double)item.Capacity / (1024 * 1024 * 1024)) + " GB");
        }