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;
}
}
}
}