【问题标题】:How to get blob properties from resource ID如何从资源 ID 获取 blob 属性
【发布时间】:2021-11-14 18:19:09
【问题描述】:

我想知道给定blob的ARM ID或资源ID,如何获取primaryEndpoints等blob属性

示例资源 ID:

/subscriptions/abffff89-2c76-424a-af4c-34b2512a3cb4/resourceGroups/foo-bar-test-rg/providers/Microsoft.Storage/storageAccounts/foobar

有一个 get blob properties REST API,我想知道 C# azure-sdk 中是否有一个等价物?

https://docs.microsoft.com/en-us/rest/api/storagerp/storage-accounts/get-properties

【问题讨论】:

    标签: c# blob azure-sdk


    【解决方案1】:

    您可以为此使用Azure SDK。您要安装的软件包是Azure.ResourceManager.StorageAzure.Identity

    以下是根据资源 id 获取存储帐户信息的代码:

    using System;
    using System.Threading.Tasks;
    using Azure.Identity;
    using Azure.ResourceManager;
    using Azure.ResourceManager.Resources;
    using Azure.ResourceManager.Storage;
    
    namespace SO69264616
    {
        class Program
        {
            static async Task Main(string[] args)
            {
                var resourceId = "/subscriptions/abffff89-2c76-424a-af4c-34b2512a3cb4/resourceGroups/foo-bar-test-rg/providers/Microsoft.Storage/storageAccounts/foobar";
                var resourceElements = resourceId.Split("/", StringSplitOptions.RemoveEmptyEntries);
                var subscriptionId = resourceElements[1];
                var resourceGroupName = resourceElements[3];
                var storageAccountName = resourceElements[resourceElements.Length - 1];
                var credentials = new AzureCliCredential();
                var armClient = new ArmClient(credentials);
                Subscription subscription = armClient.GetSubscription($"/subscriptions/{subscriptionId}");
                ResourceGroup resourceGroup = await subscription.GetResourceGroups().GetAsync(resourceGroupName);
                StorageAccountContainer storageAccountContainer = resourceGroup.GetStorageAccounts();
                StorageAccount storageAccount = await storageAccountContainer.GetAsync(storageAccountName);
                Console.WriteLine(storageAccount.Data.PrimaryEndpoints.Blob);
                Console.WriteLine("Hello World!");
            }
        }
    }
    

    我使用AzureCliCredential 是因为出于某种原因DefaultAzureCredential 对我不起作用。你应该先试试DefaultAzureCredential

    【讨论】:

    猜你喜欢
    • 2012-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多