gpt4 book ai didi

c# - Azure Blob 存储下载到流返回 ""asp.net

转载 作者:太空狗 更新时间:2023-10-30 01:14:05 24 4
gpt4 key购买 nike

我当前正在尝试使用 DownloadToStream 方法从 Azure Blob 存储下载文件,以将 Blob 的内容下载为文本字符串。但是,除了空字符串之外,我没有得到任何返回值。

这是我用来连接到 azure blob 容器并检索 blob 文件的代码。

    public static string DownLoadFroalaImageAsString(string blobStorageName, string companyID)
{
// Retrieve storage account from connection string.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
CloudConfigurationManager.GetSetting("StorageConnectionString"));

// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

// Retrieve reference to a previously created container.
CloudBlobContainer container = blobClient.GetContainerReference(companyID.ToLower());

//retrieving the actual filename of the blob
string removeString = "BLOB/";
string trimmedString = blobStorageName.Remove(blobStorageName.IndexOf(removeString), removeString.Length);

// Retrieve reference to a blob named "trimmedString"
CloudBlockBlob blockBlob2 = container.GetBlockBlobReference(trimmedString);

string text;
using (var memoryStream = new MemoryStream())
{
blockBlob2.DownloadToStream(memoryStream);
text = System.Text.Encoding.UTF8.GetString(memoryStream.ToArray());
}
return text;
}

我一直在关注this文档但是我似乎无法让它工作。任何帮助将不胜感激。

最佳答案

However I am not getting anything back but an empty string.

我在我这边测试了您提供的代码,它工作正常。我假设您的情况下测试 blob 内容为空。我们可以通过以下方式排除故障:

1.请尝试检查内存流的长度。如果长度等于 0,我们可以知道 blob 内容为空。

using (var memoryStream = new MemoryStream())
{
blockBlob2.DownloadToStream(memoryStream);
var length = memoryStream.Length;
text = System.Text.Encoding.UTF8.GetString(memoryStream.ToArray());
}

2.我们可以将包含内容的 blob 上传到容器,我们可以使用 Azure 门户或 Microsoft Azure storage explorer 来做到这一点容易地。请尝试使用上传的 blob 进行测试。

关于c# - Azure Blob 存储下载到流返回 ""asp.net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46416832/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com