我有一个天蓝色函数,需要从天蓝色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();