我有一个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;
}
现在此方法使用了一堆硬编码的常量-我想删除这些常量。如何删除硬编码,并根据运行环境来查找所需的天蓝色信息?还是我在这里将自己编程到一个角落?
您可以通过以下操作尝试使用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;
}