Azure 资源管理器中显示 1827 时,Azure 存储不返回 blob

Azure Storage returning no blobs when 1827 shown in azure explorer

我在上传将近 2000 张图片后尝试设置正确的内容类型,但没有意识到我必须设置它们的 ContentType 属性。幸运的是,在我从 .png 文件转移到其他类型之前,我意识到了这一点。

这是我的方法:

private static void ChangeImageTypeInAzureStorage()
    {
        var client = GetAzureClient();
        var blobContainer = client.GetContainerReference("accessibleimages");
        var list = blobContainer.ListBlobs().OfType<CloudBlockBlob>().ToList();

        if (!list.Any()) return; //log no entries returned
        try
        {
            foreach (var item in list)
            {

                if (Path.GetExtension(item.Uri.AbsoluteUri) == ".png")
                {
                    item.Properties.ContentType = "image/png";
                }
                item.SetProperties();
            }
        }
        catch (Exception ex)
        {
            //log exceptions with your own methods
            Console.WriteLine(ex);
        }
        Console.WriteLine("Done... press a key to end.");
        Console.ReadKey();
    }

我不明白为什么没有任何内容返回到列表中。客户端和 blobContainer 是正确的。我将这些图像上传到同一个客户端 blobContainer 没有问题。不用说它失败了,因为列表的计数始终为 0。

感谢任何帮助。

好吧,经过大量谷歌搜索,我找到了答案。 ListBlobs 方法的布尔参数 useFlatBoolListing 必须设置为 true。

 var list = blobContainer.ListBlobs(null, true).OfType<CloudBlockBlob>().ToList();