使用 C# 将 Blob 文件从 Azure 下载到内存流

Pol*_*nna 7 c# dynamics-crm azure azure-blob-storage

我正在尝试使用 C# 控制台应用程序从 Azure 读取 blob。我可以将 blob 文件下载到本地计算机并读取它,但是当我尝试将其下载到内存流时,它会抛出附件中的错误。在此输入图像描述

我想直接读取我的 blob 文件,而不是将其下载到本地计算机,因为我必须将其部署在 Azure 中。对此有什么建议吗?

var storageaccount = new CloudStorageAccount(new Microsoft.WindowsAzure.Storage.Auth.StorageCredentials(StorageAccountName, StorageAccountKey), true);
        var blobclient = storageaccount.CreateCloudBlobClient();
        var container = blobclient.GetContainerReference("");
       // var blobs = container.ListBlobs();
       var blockBlobReference = container.GetBlockBlobReference(sourceBlobFileName);
        using (var memorystream = new MemoryStream())
        {
            blockBlobReference.DownloadToStream(memorystream);
        }
Run Code Online (Sandbox Code Playgroud)

Thi*_*dio 6

我认为问题是因为你将它包装在 using 语句中。请尝试以下操作:

var storageaccount = new CloudStorageAccount(new Microsoft.WindowsAzure.Storage.Auth.StorageCredentials(StorageAccountName, StorageAccountKey), true);
var blobclient = storageaccount.CreateCloudBlobClient();
var container = blobclient.GetContainerReference("");
// var blobs = container.ListBlobs();
var blockBlobReference = container.GetBlockBlobReference(sourceBlobFileName);
var memorystream = new MemoryStream();

blockBlobReference.DownloadToStream(memorystream);
byte[] content = memoryStream.ToArray();
Run Code Online (Sandbox Code Playgroud)