从 Azure Function 中的 azure blob 容器读取八位字节流时出现超时错误
Timeout error when reading octet-stream from azure blob container in Azure Function
我有一个 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);
这适用于普通图像,但不知何故不适用于保存为八位字节流的项目(通过特定上传页面上传图像时发生)。
有谁知道这是为什么以及如何解决它?
提前致谢!
如果其他人遇到这个问题,我很容易解决:
而不是
var memStream = new MemoryStream();
blockBlob.DownloadToStream(memStream);
我用过
var stream = await blockBlob.OpenReadAsync();
我有一个 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);
这适用于普通图像,但不知何故不适用于保存为八位字节流的项目(通过特定上传页面上传图像时发生)。
有谁知道这是为什么以及如何解决它?
提前致谢!
如果其他人遇到这个问题,我很容易解决:
而不是
var memStream = new MemoryStream();
blockBlob.DownloadToStream(memStream);
我用过
var stream = await blockBlob.OpenReadAsync();