c# - 如何获取 BLOB 并将其添加到我的配置中?
问题描述
我有一个 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 信息?还是我把自己编程到了这里的一个角落?
解决方案
您可以尝试通过执行以下操作来创建CloudBlockBlob
使用 Blob URI 和 Blob 客户端的实例:
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;
}
或通过执行以下操作创建CloudBlockBlob
使用 Blob URI 和存储凭据的实例:
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;
}
推荐阅读
- c - 关于我发现的 C 函数语法的问题
- r - 从R中的字符串列中删除字符串列表
- python-3.x - 驱动程序没有导航到其中包含列表项的 url
- macos - MacOS 任务控制键盘 KeyCode
- python - 程序似乎在输出一定数量的值后中途停止工作
- python-3.x - Pandas 按列值将数据帧拆分为两个数据帧 - 不使用 GroupBy
- markdown - 如何更改美人鱼序列图中一个元素的颜色?
- powershell - 通过powershell脚本在WSL中运行bash脚本
- php - 检查是否重置密码令牌有效的laravel
- python - Pypng:numpy数组与输出PNG文件不同