【问题标题】:Get report of file sizes from Azure Blob Storage从 Azure Blob 存储获取文件大小报告
【发布时间】:2021-06-13 11:35:41
【问题描述】:

我需要访问 blob 存储并获取文件大小和文件路径报告。我需要下载该报告。我在 blob 存储中的文件存储结构是有四个命名文件夹。然后对于每个用户都有一个自动生成的 GUID 文件夹。文件夹里面有文件。我需要获取文件大小和文件路径(或文件名)的列表。最好的方法是什么?

【问题讨论】:

    标签: c# azure azure-blob-storage


    【解决方案1】:

    您可以使用prefix 获取文件,并使用GetBlobsAsync 获取ContentLength(以字节为单位的大小)的文件大小。

    例如,将前缀设置为“目录A”时,您将获得目录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;
    }
    

    以上是基于存储v12。如果使用旧版本(v11),可以参考here

    【讨论】:

      猜你喜欢
      • 2018-05-07
      • 1970-01-01
      • 2023-01-16
      • 2020-09-23
      • 2012-06-16
      • 2014-10-06
      • 2019-01-11
      • 2015-11-04
      • 1970-01-01
      相关资源
      最近更新 更多