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);
}
myBlobStorageService
class的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"。
问题背景:
我有一个基本的 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);
}
myBlobStorageService
class的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"。