将图像从azure blob存储转换为Base64?

msh*_*hwf 1 azure azure-storage

我正在尝试将图像从Azure blob存储转换为base64:

private static string FromAzureToBase64(string azureUri)
{
    Uri blobUri = new Uri(azureUri);
    CloudBlockBlob blob = new CloudBlockBlob(blobUri, StorageAccount.Credentials);

    byte[] arr = new byte[blob.Properties.Length];
    blob.DownloadToByteArray(arr, 0);
    var azureBase64 = Convert.ToBase64String(arr);
    return azureBase64;
}
Run Code Online (Sandbox Code Playgroud)

arr参数的问题是我应该定义它的长度,但是值为blob.Properties.Length-1,但是图像存在于Azure上,但几乎所有属性都为null或未指定:

在此输入图像描述

Gau*_*tri 12

你可以做的是获取blob的属性,然后填充blob的长度属性.所以你的代码是:

private static string FromAzureToBase64(string azureUri)
{
    Uri blobUri = new Uri(azureUri);
    CloudBlockBlob blob = new CloudBlockBlob(blobUri, StorageAccount.Credentials);
    blob.FetchAttributes();//Fetch blob's properties
    byte[] arr = new byte[blob.Properties.Length];
    blob.DownloadToByteArray(arr, 0);
    var azureBase64 = Convert.ToBase64String(arr);
    return azureBase64;
}
Run Code Online (Sandbox Code Playgroud)