如何提供Azure存储CNAME作为连接字符串的一部分?

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

Azure存储帐户的所有连接字符串似乎只是原始URL +帐户。

有没有办法将连接字符串更改为Azure存储帐户而不是我的CNAME?

编辑:下面的答案太棒了,答案发布后几个小时(并勾选)我发现some official documentation on this/the same answer :)

azure azure-storage
1个回答
4
投票

好问题!我认为你可以,但它只适用于Blob Storage,因为你只能为blob端点指定一个CNAME映射,你需要在某处使用你的帐户名,因为它用于授权头计算。我就是这样做的:

    static void ConnectViaCname()
    {
        var cred = new StorageCredentials("account-name", "account-key");
        var account = new CloudStorageAccount(cred, new Uri("https://cnamemapping.com"), null, null, null);
        var client = account.CreateCloudBlobClient();
        var containers = client.ListContainers();
        foreach (var container in containers)
        {
            Console.WriteLine(container.Uri.AbsoluteUri);
        }
    }

UPDATE

如果您希望使用连接字符串,请以此格式指定连接字符串:

DefaultEndpointsProtocol=https;
BlobEndpoint=https://cnamemapping.com;
AccountName=account-name;
AccountKey=account-key

所以代码是:

    static void ConnectViaCname()
    {
        var connectionString = "DefaultEndpointsProtocol=https;BlobEndpoint=https://cnamemapping.com;AccountName=account-name;AccountKey=account-key";
        var account = CloudStorageAccount.Parse(connectionString);
        var client = account.CreateCloudBlobClient();
        var containers = client.ListContainers();
        foreach (var container in containers)
        {
            Console.WriteLine(container.Uri.AbsoluteUri);
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.