首页 > 解决方案 > 从 Azure Function 中的 azure blob 容器读取八位字节流时​​出现超时错误

问题描述

我有一个 azure 函数,我需要从 azure blob 容器中获取图像,然后将其发送到外部 API。为此,我将其下载到内存流中,然后将其作为流发送到 API。

我用于此的代码如下:

           var storageConnection = Environment.GetEnvironmentVariable("AZURE_STORAGE_CONNECTION_STRING");
           var containerName = Environment.GetEnvironmentVariable("BlobContainerName");

           var cloudStorageAccount = CloudStorageAccount.Parse(storageConnection); 
           var blobClient = cloudStorageAccount.CreateCloudBlobClient();

           var cloudBlobContainer = blobClient.GetContainerReference(containerName); 
           var blockBlob = cloudBlobContainer.GetBlockBlobReference(filename);

           var memStream = new MemoryStream();
           blockBlob.DownloadToStream(memStream);

这适用于普通图像,但不知何故不适用于保存为八位字节流的项目(通过某个上传页面上传图像时发生)。

有谁知道这是为什么以及如何解决它?
提前致谢!

标签: c#azure-functionsazure-blob-storagememorystream

解决方案


如果其他人有这个问题,我很容易解决它:

代替

var memStream = new MemoryStream();
blockBlob.DownloadToStream(memStream);

我用了

var stream = await blockBlob.OpenReadAsync();

推荐阅读