【问题标题】:How to get file size from Azure Blob如何从 Azure Blob 获取文件大小
【发布时间】:2020-10-15 16:40:20
【问题描述】:

我在 Azure 中有一个名为 productimages 的子文件夹。在 productimages 文件夹中我现在有很多图像,我想获取图像 URL 以及文件大小。我能够获取 URL,但无法获取文件大小。另一件事是,当我从 blob 获取 URL 时,它并没有按顺序出现,例如,它不是以 1.jpg、2.jpg 的形式出现,而是像 9999.jpg .... 1.jpg。

我的代码:

public List<ProductDataVM> RetrieveFileInfoFromBlob()
        {
            List<ProductDataVM> plists = new List<ProductDataVM>();
            var files = container.ListBlobs(prefix: "productimages/", useFlatBlobListing: true);
            var cnt = files.Count();

            foreach (var file in files)
            {

                ProductDataVM ob = new ProductDataVM();
                ob.ImageUrl = file.Uri.ToString();
                ob.FileSize = file.Properties.Length; // in this line it gives IListBlobItem' does not contain a definition for 'Properties'
                plists.Add(ob);
            }

            return plists;

        }     

我们将不胜感激。

【问题讨论】:

  • 我认为你只是缺少 file.FetchAttributes();在调用 file.Properties.Length;
  • @JohnD 感谢您的友好回复,但没有找到类似 file.FetchAttributes() 的内容。
  • 你可能想在这里检查类似的问题:stackoverflow.com/questions/25281492/…

标签: c# azure-blob-storage


【解决方案1】:

尝试转换为 CloudBlob 并首先使用 file.FetchAttributes()

public List<ProductDataVM> RetrieveFileInfoFromBlob()
        {
            List<ProductDataVM> plists = new List<ProductDataVM>();
            var files = container.ListBlobs(prefix: "productimages/", useFlatBlobListing: true);
            var cnt = files.Count();

            foreach (var file in files)
            {
                var blobFile = (CloudBlob)file;
                ProductDataVM ob = new ProductDataVM();
                ob.ImageUrl = blobFile.Uri.ToString();
                blobFile.FetchAttributes();
                ob.FileSize = blobFile.Properties.Length; // in this line it gives IListBlobItem' does not contain a definition for 'Properties'
                plists.Add(ob);
            }

            return plists;

        } 

【讨论】:

  • 感谢合作,但文件大小返回为 24330 而不是 23.7 kb 。有什么方法可以将值保存为 kb
  • 除以 1000
  • 谢谢,@anon,但请告诉我,为了从 blob 中按顺序获取 URL,我该怎么做,因为 URL 没有按顺序排列,但我需要按顺序排列 URL将其存储在 db 表中。
  • @Mahmud,将 24330 除以 1024 得到 23.75,单位为 Kb
猜你喜欢
  • 2014-10-06
  • 2021-06-13
  • 2018-05-07
  • 2013-02-11
  • 2018-07-08
  • 2023-01-16
  • 1970-01-01
  • 2015-09-16
  • 1970-01-01
相关资源
最近更新 更多