【发布时间】:2020-08-15 12:02:34
【问题描述】:
我有一个 web api,它使用一堆 appSettings 文件来加载测试数据。 我想将该数据的位置转移到 Azure Blob。 基于测试基础设施,我想将 Blob 转换为 IConfiguration 对象。
为此,我想在 ConfigurationBuilder 上使用 AddJsonStream。
我创建了这个方法来抓取 blob 并将其转换为流:
public static Stream GetBlobAsStream(Uri blobURI)
{
var storageAccount = CloudStorageAccount.Parse(AZURE_STORAGE_CONNECTION_STRING);
var cloudBlobClient = storageAccount.CreateCloudBlobClient();
var cloudBlobContainer = cloudBlobClient.GetContainerReference(blobContainer);
var cloudBlob = cloudBlobContainer.GetBlockBlobReference(blobName);
var stream = cloudBlob.OpenRead();
return stream;
}
现在这个方法使用了一堆硬编码的常量——我想删除它们。 如何删除硬编码,并根据运行它的环境找到所需的 azure 信息? 还是我把自己编程到了这里的一个角落?
【问题讨论】:
-
两个问题:1)我假设您的
AZURE_STORAGE_CONNECTION_STRING来自设置。正确的? 2) 你的blobUri怎么样?是https://account.blob.core.windows.net/container-name/blob-name吗? -
@GauravMantri-AIS 1) 它来自我代码中的硬编码字符串。 2) 是的,这正是它的样子。
-
谢谢。如果我理解正确,您会想要使用这个 blob url 和连接字符串来获取 blob 内容。对吗?
-
是的,没错。
-
提供了答案。希望这就是您要找的。span>
标签: c# azure configuration-files test-data