问题背景:
我有一个基本的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);
}
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 但它没有图像文件名。
对此有任何帮助将不胜感激。
答案 0 :(得分:0)
正如瓜拉夫已经说过的那样,检查一件好事就是确保你的容器不是“私人”。