![](/img/trans.png)
[英]How to create an Azure Search Indexer using .net SDK (c#) to pull data from Azure blob storage
[英]How to write binary data as image into azure blob storage c#
首先,我是 azure 开发的新手,所以我的问题会模棱两可。 我需要更好的建议。 我有 web api C# 接收二进制数据(图像)。 我想将它写入 azure blob 存储。 就我而言,我需要检查是否存在 blob 存储然后写入图像,否则创建目录并写入图像。
此目录是公共读取访问权限,因此我可以在任何公共应用程序中反映图像。
以下方法存储图像并返回图像公共路径
public class BlobStorageService : IBlobStorageService
{
public async Task<string> SaveSingleImage(byte[] image)
{
throw new NotImplementedException();
}
}
我已经做了。 以下是我的代码。 这将获取图像字节并保存到 blob 存储中并返回该图像的公共 URL
public async Task<string> GoAppSaveSingleImage(ProofImageViewModel proofImage)
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(GlobalConfig.Instance.AzureBlobStorageForGoAppImages);
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference(GlobalConfig.Instance.AzureBlobGoAppImagesContainerName);
CloudBlockBlob blockBlob = container.GetBlockBlobReference($"{proofImage.CountryCode}/{DateTime.Now.Year}/{DateTime.Now.Month}/{proofImage.ProofImage}");
blockBlob.Properties.ContentType = "image/png";
if (GlobalConfig.Instance.AzureBlobGoAppImagesIsStorageTier)
{
blockBlob.SetStandardBlobTierAsync((StandardBlobTier)GlobalConfig.Instance.AzureBlobGoAppImagesStorageTier).GetAwaiter().GetResult();
}
using (var stream = new MemoryStream(proofImage.ProofImage, writable: false))
{
await blockBlob.UploadFromStreamAsync(stream);
}
string publicUrl = blockBlob.Uri.AbsoluteUri;
return publicUrl;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.