我正在编写一个程序,可以从我们的Azure存储容器的指定文件路径下载图像。
我已经从在线找到的代码中整合了以下功能,然后删除了错误。但是,最后的错误我无法消除。
完整代码如下:
using System;
using System.Windows.Forms;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Blob;
using System.IO;
namespace WarehousePhotoProgram
{
public partial class Form1 : Form
{
string storageConnectionString = Environment.GetEnvironmentVariable("storageconnectionstring");
public Form1()
{
InitializeComponent();
}
private void DownloadFileFromBlob(string fileName, string containerName)
{
CloudStorageAccount account = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue(storageConnectionString));
CloudBlobClient blobClient = account.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference(containerName);
CloudBlob blob = container.GetBlobReference(fileName);
MemoryStream memStream = new MemoryStream();
blob.DownloadToStream(memStream);
Response.ContentType = blob.Properties.ContentType;
Response.AddHeader("Content-Disposition", "Attachment; filename=" + fileName.ToString());
Response.AddHeader("Content-Length", blob.Properties.Length.ToString());
Response.BinaryWrite(memStream.ToArray());
}
}
}
代码当前在上出错
RoleEnvironment
如果说命名空间不存在,是否缺少程序集引用?或者我需要进口另一个
using
.第二个错误出现在
Result.
再次说明
Response
不存在。
这也是从blobstorage下载图像时采用的最佳方法,还是应该采用另一种方法?
编辑:我解决了
角色环境
在给定答案的帮助下出错。现在尝试确定代码的响应部分也需要更改什么。
public Form1()
{
InitializeComponent();
//_storageAccount = CloudStorageAccount.Parse(storageConnectionString);
DownloadFileFromBlob("029000/1.png", "warehouseimages", "Desktop");
}
private void DownloadFileFromBlob(string fileName, string containerName, string localFilePath)
{
CloudStorageAccount account = CloudStorageAccount.Parse(storageConnectionString);
CloudBlobClient blobClient = account.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference(containerName);
CloudBlob blob = container.GetBlobReference(fileName);
using (var fileStream = System.IO.File.OpenWrite(localFilePath))
{
blob.DownloadToStream(fileStream);
MessageBox.Show("SUCCESS");
}
}