c# - 从 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);
这适用于普通图像,但不知何故不适用于保存为八位字节流的项目(通过某个上传页面上传图像时发生)。
有谁知道这是为什么以及如何解决它?
提前致谢!
解决方案
如果其他人有这个问题,我很容易解决它:
代替
var memStream = new MemoryStream();
blockBlob.DownloadToStream(memStream);
我用了
var stream = await blockBlob.OpenReadAsync();
推荐阅读
- swift - 快速修复字符数、十进制数和“0”字符数
- excel - 形状的条件格式
- android - 上传服务器后 Zip 文件损坏,但在手机存储上下载和查看时,它工作正常。我在这里做错了什么?
- ruby-on-rails-5 - 在 from 子句中使用横向表,
- ruby-on-rails - 注销返回 Can't verify CSRF token 真实性
- android - 在 Windows 上为 android 构建 poppler (-qt5)
- gradle - Gradle 构建卡在编译 Java
- python - 如何在python中创建一个充满NaT的时间矩阵?
- java - 在 Spring MVC 中将多个相同的对象发送到 Controller
- matplotlib - 如何在matplotlib中绘制子图水平和垂直对齐?