我可以从Web应用程序中下载Azure Blob存储中的文件。
一旦我获得Azure Blob存储列表,就不会下载它。
输入下载blob时出错。
如果您能查看我的代码并让我知道问题是什么,我将不胜感激。
public string DownloadBlob()
{
CloudBlobContainer container = GetCloudBlobContainer();
CloudBlockBlob blob = container.GetBlockBlobReference("myBlob");
using (var fileStream = System.IO.File.OpenWrite(@"C:\BlobTest"))
{
blob.DownloadToStream(fileStream);
}
return "success!";
}
答案 0 :(得分:2)
我已经测试了您的代码,它可以在我的MVC Web应用程序中运行,如下所示。
public ActionResult Download()
{
ContentResult contentResult = new ContentResult();
contentResult.Content = DownloadBlob();
return contentResult;
}
public static string DownloadBlob()
{
try
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=leeliublob;AccountKey=O7xB6ebGq8e86XQSy2vkvSi/x/e9l9FhLqayXcbz1R+E0mIcJ5Wjkly1DsQPYY5dF2JrAVHtBozbJo29ZrrGJA==;EndpointSuffix=core.windows.net");
CloudBlobClient cloudBlobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = cloudBlobClient.GetContainerReference("mycontainer");
CloudBlockBlob blob = container.GetBlockBlobReference("4.PNG");
using (var fileStream = System.IO.File.OpenWrite(@"C:\Test\BlobTest.PNG"))
{
blob.DownloadToStream(fileStream);
}
return "success!";
}
catch(Exception ex)
{
return ex.StackTrace;
}
}
我认为这是关于MVC应用程序权限的问题。
您的MVC应用程序可能使用IIS的虚拟帐户,如下所示,它可能无法访问您的C盘。
要解决这个问题,有两种方法: