How to get Azure Storage Blob Size. - JackyChiou/jackychiou.github.io GitHub Wiki
Sample Code:
using Microsoft.Azure.Storage;
using Microsoft.Azure.Storage.Auth;
using Microsoft.Azure.Storage.Blob;
using System;
using System.Threading.Tasks;
namespace GetStorageFolderSize
{
class Program
{
static async Task Main(string[] args)
{
string accountName = "jackyst3";
string accountKey = @"fIadrk5jQg9maetig6vJX4GhWRfCGYVxuyWZL6QE2Tbb/P1Y4+OvXY2DFKYJiKAzX3hJ86IU1cbtaJHcsi9tJg==";
Console.WriteLine("Storage Account Name: " + accountName);
var account = new CloudStorageAccount(new StorageCredentials(accountName, accountKey), true);
var blobClient = account.CreateCloudBlobClient();
//change it to your container name
var container = blobClient.GetContainerReference("data");
Console.WriteLine("Get a list of all blobs in your container");
BlobResultSegment result = await container.ListBlobsSegmentedAsync(null);
Console.WriteLine("Iterate each blob");
int segmentSize = 50000;
BlobContinuationToken continuationToken = null;
CloudBlob blob;
long size = 0;
long count = 0;
try
{
// Call the listing operation and enumerate the result segment.
// When the continuation token is null, the last segment has been returned
// and execution can exit the loop.
do
{
BlobResultSegment resultSegment = await container.ListBlobsSegmentedAsync(string.Empty,
true, BlobListingDetails.Metadata, segmentSize, continuationToken, null, null);
foreach (var blobItem in resultSegment.Results)
{
// A flat listing operation returns only blobs, not virtual directories.
blob = (CloudBlob)blobItem;
// Write out some blob properties.
Console.WriteLine("Blob Uri: {0} , size: {1}", blob.Uri, blob.Properties.Length);
size += blob.Properties.Length;
count++;
}
Console.WriteLine($"Foreach completed at: {DateTime.Now}");
// Get the continuation token and loop until it is null.
continuationToken = resultSegment.ContinuationToken;
} while (continuationToken != null);
}
catch (StorageException e)
{
Console.WriteLine(e.Message);
}
Console.WriteLine("Total Size: {0}", size);
Console.WriteLine("Total count: {0}", count);
}
}
}