如何解决从 Azure Blob 存储获取文件大小报告
我需要访问 blob 存储并获取文件大小和文件路径报告。我需要下载那个报告。我在 blob 存储中的文件存储结构是有四个命名文件夹。然后对于每个用户都有一个自动生成的 GUID 文件夹。文件夹里面有文件。我需要获取文件大小和文件路径(或文件名)的列表。最好的方法是什么?
解决方法
您可以使用 prefix
获取文件,并使用 GetBlobsAsync 使用 ContentLength
(大小以字节为单位)获取文件大小。
例如,将前缀设置为“directoryA”时,您将获得目录A中的所有文件。存储 URL 看起来像 https://myaccount.blob.core.windows.net/ContainerName/directoryA/filename
。
private static async Task ListBlobsFlatListing(BlobContainerClient blobContainerClient,int? segmentSize,string yourPrefix)
{
try
{
// Call the listing operation and return pages of the specified size.
var resultSegment = blobContainerClient.GetBlobsAsync(prefix: yourPrefix)
.AsPages(default,segmentSize);
// Enumerate the blobs returned for each page.
await foreach (Azure.Page<BlobItem> blobPage in resultSegment)
{
foreach (BlobItem blobItem in blobPage.Values)
{
Console.WriteLine("Blob name: {0}",blobItem.Name);
Console.WriteLine("Blob content length: {0}",blobItem.Properties.ContentLength);
}
Console.WriteLine();
}
}
catch (RequestFailedException e)
{
Console.WriteLine(e.Message);
Console.ReadLine();
throw;
}
}
您可以使用此方法将获得的 ContentLength 转换为 MB:
static double ConvertBytesToMegabytes(long bytes)
{
return (bytes / 1024f) / 1024f;
}
以上是基于storage v12。如果使用旧版本(v11),可以参考here。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。