using System.Threading.Tasks; using Azure.Storage; using Azure.Storage.Blobs; using Azure.Storage.Blobs.Models; namespace TEAMModelOS.SDK.DI { public static class AzureStorageBlobExtensions { /// /// 取得指定前置詞的 Blob 名稱的總大小(Bytes),例如指定目錄名稱為前置詞 /// /// 篩選開頭名稱,Null代表容器總大小 /// 總大小(Bytes),如果為Null代表查無前置詞或者發生錯誤 public static async Task GetBlobsSize(this BlobContainerClient client, string prefix = null) { long? size = 0; try { await foreach (var item in client.GetBlobsAsync(BlobTraits.None, BlobStates.None, prefix)) { size += item.Properties.ContentLength; }; return size; } catch { return null; } } } }