从 Azure Blob C# 下载图像
Posted
技术标签:
【中文标题】从 Azure Blob C# 下载图像【英文标题】:Downloading Image from Azure Blob C# 【发布时间】:2021-12-12 01:48:09 【问题描述】:我正在尝试使用以下方式从 Azure 存储 blob 下载图像 (.jpg):
public static async Task DownloadToTemp(string path, string fileName)
string storageAccount_connectionString = "CONNECTION STRING";
CloudStorageAccount mycloudStorageAccount = CloudStorageAccount.Parse(storageAccount_connectionString);
CloudBlobClient blobClient = mycloudStorageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference(CONTAINER);
CloudBlockBlob cloudBlockBlob = container.GetBlockBlobReference(fileName);
// provide the file download location below
Stream file = File.OpenWrite(path);
await cloudBlockBlob.DownloadToStreamAsync(file);
file.Close();
return;
但是当我尝试将图像打开为位图Bitmap image = new Bitmap(path)
时,我收到了错误System.ArgumentException: 'Parameter is not valid.'
。我正在使用电话BlobHandler.DownloadToTemp(path, file).GetAwaiter()
来确保文件已下载。
【问题讨论】:
【参考方案1】:所以问题在于没有完全等待图像被存储: 添加:
await BlobHandler.DownloadToTemp(path, file);
确保文件完全下载(这意味着调用函数必须是异步的)。
【讨论】:
以上是关于从 Azure Blob C# 下载图像的主要内容,如果未能解决你的问题,请参考以下文章