Azure 存储块 Blob 上的小文件
Small files on Block Blobs of Azure Storage
我们正在使用 Azure 存储来存储大量小文件(每个约 200 字节)。这些文件中的每一个都在块 blob 上。如果我将 1000 个这样的文件存储在单独的块 blob 上,我的存储使用量是多少:1000 * 200 = 200KB 或 1000 * 4MB(块 blob 大小)= 4GB?存储仪表板上有很多信息,但我找不到任何关于总使用量 space 的信息。
它将是 200KB(所有文件的总大小)。
关于查找这些文件占用的总大小space,您可以使用存储分析。 Blob 存储大小信息存储在 $MetricsCapacityBlob
table 中(请注意,这是一个特殊的 table,当您尝试在其中列出 table 时,它不会包含在结果中您的存储帐户)。您可以在此处找到有关此 table 架构的更多信息: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");
}
我们正在使用 Azure 存储来存储大量小文件(每个约 200 字节)。这些文件中的每一个都在块 blob 上。如果我将 1000 个这样的文件存储在单独的块 blob 上,我的存储使用量是多少:1000 * 200 = 200KB 或 1000 * 4MB(块 blob 大小)= 4GB?存储仪表板上有很多信息,但我找不到任何关于总使用量 space 的信息。
它将是 200KB(所有文件的总大小)。
关于查找这些文件占用的总大小space,您可以使用存储分析。 Blob 存储大小信息存储在 $MetricsCapacityBlob
table 中(请注意,这是一个特殊的 table,当您尝试在其中列出 table 时,它不会包含在结果中您的存储帐户)。您可以在此处找到有关此 table 架构的更多信息: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");
}