如何下载 Block Blob (Base64) 文件并使用 Azure Blob 存储将其转换为 PNG?
Posted
技术标签:
【中文标题】如何下载 Block Blob (Base64) 文件并使用 Azure Blob 存储将其转换为 PNG?【英文标题】:How download Block Blob (Base64) file and convert it to PNG using Azure Blob Storage? 【发布时间】:2021-10-20 11:12:09 【问题描述】:我目前正在开发一个网站,该网站将从 Azure Blob 存储下载 Blob 文件并显示为图像。该文件已保存为 Base64,我在将文件下载到流时遇到问题。我尝试了多种方法,一切都没有结果。这是我目前所拥有的:
[HttpGet]
public async IActionResult ViewFile(string name)
BlobServiceClient blobServiceClient = new BlobServiceClient(System.Environment.GetEnvironmentVariable("BlobConnection"));
BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient("store-images");
// this will allow us access to the file inside the container via the file name
//var blob = containerClient.GetBlobs(prefix: name);
//var blobContainerUri = containerClient.GetBlobClient(name);
BlobClient blob = containerClient.GetBlobClient(name);
MemoryStream stream = new MemoryStream();
await blob.DownloadStreamingAsync(stream);
stream.Position = 0;
return stream;
【问题讨论】:
请编辑您的问题并包含您尝试过的代码以及您遇到的问题。到目前为止,我们根本不知道您尝试了哪些方法。 你是如何消费流的?你能分享那个代码吗? 我对此非常陌生,我拥有的其他代码只是一个 html 视图。这就是我的控制器所拥有的。 @GauravMantri 【参考方案1】:这是对我有用的逻辑
string storageAccount_connectionString = "**Enter Connection String**";
CloudStorageAccount mycloudStorageAccount = CloudStorageAccount.Parse(storageAccount_connectionString);
CloudBlobClient blobClient = mycloudStorageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference(azure_ContainerName);
CloudBlockBlob cloudBlockBlob = container.GetBlockBlobReference(filetoDownload);
// provide the file download location below
Stream file = File.OpenWrite(@"C:\location" + filetoDownload);
cloudBlockBlob.DownloadToStream(file);
file.Close();
//Converting Base64 to png
string base64String = File.ReadAllText(@"C:\location\base64.txt");
byte[] imgBytes = Convert.FromBase64String(base64String);
using (var imageFile = new FileStream(@"C:\location\sample.png", FileMode.Create))
imageFile.Write(imgBytes, 0, imgBytes.Length);
imageFile.Flush();
参考:Blog to convert base64 to png
Download blob from storage
【讨论】:
如果我的回答对您有帮助,您可以接受它作为答案(单击答案旁边的复选标记,将其从灰色切换为已填充)。这对其他社区成员可能是有益的。谢谢以上是关于如何下载 Block Blob (Base64) 文件并使用 Azure Blob 存储将其转换为 PNG?的主要内容,如果未能解决你的问题,请参考以下文章