Azure blob - 无法在 MVC 4 的 blob 容器中显示图像存储

Azure blobs - cannot display image store in blob container in MVC 4

问题背景:

我有一个基本的 MVC 4 站点,我正在尝试显示存储在我的 Azure 云帐户的 blob 存储容器中的图片。我将图像列表 Uri's 存储在字符串 List 中,并将它们传递给 View 它们应该显示的位置

问题:

我好像获取不到容器中存储的图片的文件名

下图显示了 Azure 中的容器。 注意其中存储了一张大小为101.28KB的图片:

这是我尝试用来检索 blob 然后读取图像的代码 Uri's:

AzureStorageController 具有 Pics 操作方法:

 public ActionResult Pics()
    {
        var imageList = new List<string>();

        var imagesAzure = new myBlobStorageService();

        var container = imagesAzure.GetCloudBlobContainer();

        foreach (var blobItem in container.ListBlobs())
        {
            imageList.Add(blobItem.Uri.ToString());
        }
        return View(imageList);
    }

myBlobStorageServiceclass的GetCloudBlobContainer方法:

 public CloudBlobContainer GetCloudBlobContainer()
    {
        string accountName = "fmfcpics";

        string accountKey = "xxxxxx/yyyyyyyyy/3333333333==";

        StorageCredentials credentials = new StorageCredentials(accountName, accountKey);

        CloudStorageAccount storageAccount = new CloudStorageAccount(credentials, true);

        CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

        CloudBlobContainer container = blobClient.GetContainerReference("images");

        if (container.CreateIfNotExists())
        {
            container.SetPermissions(new BlobContainerPermissions() { PublicAccess = BlobContainerPublicAccessType.Blob });
        }

        return container;
    }

Pics 视图:

@{
ViewBag.Title = "Pics";
}

<h2>Pics</h2>

@foreach (var item in Model)
{
    <img src="@item" alt="picture" width="200" height="200" />
}

传递给图片视图的列表中的 Uri 是:https://fmfcpics.blob.core.windows.net/images/myblob 但它没有图像文件名。

如有任何帮助,我们将不胜感激。

正如 Guarav 已经指出的那样,检查的一件好事是确保您的容器不是 "Private"。