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

时间:2015-06-18 20:26:41

标签: asp.net-mvc-4 azure azure-storage azure-storage-blobs

问题背景:

我有一个基本的MVC 4网站,我正在尝试在Azure云帐户中显示存储在blob存储容器中的图片。我将图片Uri's列表存储在字符串List中,然后将其传递给View,以便显示

问题:

我似乎无法获取存储在容器中的图像的文件名。

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

enter image description here

这是我试图用来检索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);
    }

GetCloudBlobContainer类的myBlobStorageService方法:

 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" />
}

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

对此有任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

正如瓜拉夫已经说过的那样,检查一件好事就是确保你的容器不是“私人”。