将来自客户端的图像保存到Azure存储中

问题描述 投票:0回答:1

我有一些代码。它没有给我一些错误,但是我在Azure存储中的文件夹中没有图像。

            var bytes = person.Image.GetBytes();
        MemoryStream ms = new MemoryStream(bytes.Result);
  var storageCredentials = new StorageCredentials("AccountName", "***/pEYRskVHuAtUhcvLT/Ct*****/71lLMUCgTybnm****B4WO/AGFe****==");
        var cloudStorageAccount = new CloudStorageAccount(storageCredentials, true);
        var cloudBlobClient = cloudStorageAccount.CreateCloudBlobClient();

        var container = cloudBlobClient.GetContainerReference("https://*********.blob.core.windows.net/images");

        var newBlob = container.GetBlockBlobReference("myfile.jpg");
        newBlob.UploadFromStreamAsync(ms);
c# azure asp.net-core azure-storage azure-storage-blobs
1个回答
0
投票

最有可能遇到此问题的原因是,您正在调用async操作,而不是等待其完成:

newBlob.UploadFromStreamAsync(ms);

您可以通过以下操作等待此操作完成来解决此问题:

ms.Position(0);
await newBlob.UploadFromStreamAsync(ms);

或使用sync版本的相同方法:

ms.Position(0);
newBlob.UploadFromStream(ms);
© www.soinside.com 2019 - 2024. All rights reserved.