如何获得BLOB并将其添加到我的配置中?

问题描述 投票:0回答:1

我有一个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;
    }

现在此方法使用了一堆硬编码的常量-我想删除这些常量。如何删除硬编码,并根据运行环境来查找所需的天蓝色信息?还是我在这里将自己编程到一个角落?

c# azure configuration-files test-data
1个回答
0
投票

您可以通过以下操作尝试使用Blob URI和Blob客户端创建CloudBlockBlob的实例:

public static Stream GetBlobAsStream(Uri blobURI)
{
    var storageAccount = CloudStorageAccount.Parse(AZURE_STORAGE_CONNECTION_STRING);
    var cloudBlobClient = storageAccount.CreateCloudBlobClient();
    var cloudBlob = new CloudBlockBlob(blobURI, cloudBlobClient);
    var stream = cloudBlob.OpenRead();
    return stream;
}

或通过以下操作使用Blob URI和存储凭据创建CloudBlockBlob的实例:

public static Stream GetBlobAsStream(Uri blobURI)
{
    var storageAccount = CloudStorageAccount.Parse(AZURE_STORAGE_CONNECTION_STRING);
    var cloudBlob = new CloudBlockBlob(blobURI, storageAccount.Credentials);
    var stream = cloudBlob.OpenRead();
    return stream;
}
© www.soinside.com 2019 - 2024. All rights reserved.