c# - 以编程方式从 Azure Blob 存储连接字符串中提取属性

标签 c# azure azure-blob-storage

给定一个 Blob 存储连接字符串,例如:

DefaultEndpointsProtocol=https;AccountName=foo;AccountKey=bar;EndpointSuffix=core.windows.net

是否有可以转换/反序列化的已知 Microsoft 对象?我不想实际解析该字符串,但我需要从整个连接字符串中提取 AccountName 和 AccountKey,我将其作为字符串。

预防可能出现的“你为什么要这样做?”问题...我有一个现有的类,需要将连接字符串作为字符串注入(inject)。为了避免破坏性更改,我无法更改它。但我确实需要在此类中添加一些需要 AccountName 和 AccountKey 作为单独项目的方法。

谢谢!

最佳答案

如果安装 Microsoft.Azure.Storage.Common,您可以通过编程方式提取连接字符串的多个位,而无需自己解析连接字符串。

例如(实际信息被混淆):

using System;
using Microsoft.Azure.Storage;

namespace dotnet_connectionstring
{
    class Program
    {
        static void Main(string[] args)
        {
            CloudStorageAccount storageAccount = CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=youraccount;AccountKey=yourkey==;EndpointSuffix=core.windows.net");
            Console.WriteLine(storageAccount.BlobEndpoint);
            Console.WriteLine("---");
            Console.WriteLine(storageAccount.BlobStorageUri);
            Console.WriteLine("---");
            Console.WriteLine(storageAccount.Credentials.AccountName);
            Console.WriteLine("---");
            Console.WriteLine(storageAccount.Credentials.ExportBase64EncodedKey());
        }
    }
}

这给出了类似的输出:

https://youraccount.blob.core.windows.net/
---
Primary = 'https://youraccount.blob.core.windows.net/'; Secondary = 'https://youraccount-secondary.blob.core.windows.net/'
---
youraccount
---
yourkey==

关于c# - 以编程方式从 Azure Blob 存储连接字符串中提取属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60998307/

相关文章:

c# - 通过 Web 代理与 WCF 服务通信;从 Windows 服务中

c# - 以编程方式使用备份数据库

c# - Azure函数: configure blob trigger only for new events

azure - 2015 年 12 月删除 Microsoft Azure 存储服务 API

c# - 使用 C# 从 SQL Server 数据库显示 PDF

c# - 是否有任何属性默认值初始值设定项属性?

azure - 由于无法访问实例而无法创建 Azure Databricks 群集

node.js - 注销Azure Passport身份验证Node js

shell - 使用 azure 数据工厂 (ADF) 从 Pig/Hive 事件运行 shell 脚本

asp.net-mvc-4 - 通过c#.net将csv文件上传到blob并在将数据输入数据库后删除它