未授权此请求执行此操作,Azure blobClient

mfuanj7w  于 2022-11-17  发布在  其他
关注(0)|答案(3)|浏览(161)

下面的代码使用WindowsAzure.Storage nuget包返回容器列表:

public static class AzureBlobStorageClient
{
    public static CloudBlobClient GetClient(string AccountName = "foo", string AccountKey = "bar" )
    {
        try
        {

            var connectionString = $"DefaultEndpointsProtocol=https;AccountName={AccountName};AccountKey={AccountKey};EndpointSuffix=core.windows.net";
            CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);
            CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
            IRetryPolicy exponentialRetryPolicy = new ExponentialRetry(TimeSpan.FromSeconds(2), 10);
            blobClient.DefaultRequestOptions.RetryPolicy = exponentialRetryPolicy;
            return blobClient;
        }
        catch (StorageException ex)
        {
            Console.WriteLine("Error returned from the service: {0}", ex.Message);
            throw;
        }
    }

    public static void DeleteContainer(CloudBlobContainer container)
    {
        var result = container.DeleteIfExistsAsync().Result;
    }

    public static List<CloudBlobContainer> GetContainers()
    {
        var client = GetClient();
        BlobContinuationToken continuationToken = null;
        List<CloudBlobContainer> results = new List<CloudBlobContainer>();
        do
        {
            var response = client.ListContainersSegmentedAsync(continuationToken).Result;
            continuationToken = response.ContinuationToken;
            results.AddRange(response.Results);
        }
        while (continuationToken != null);

        return results;
    }

}

当我运行这个程序时,我在客户端上得到以下错误。ListContainersSegmentedAsync(continuationToken)。结果:
System.AggregateException:'发生一个或多个错误。(此请求未被授权执行此操作。)'
并且我看不到如何设置请求的授权。
我的问题是如何通过这个错误消息

ct2axkht

ct2axkht1#

感谢@gaurav Mantri的回答。
问题是我的客户端IP没有添加到存储帐户的防火墙规则中。
要更改此设置,请访问:
存储帐户〉{您的帐户}〉网络〉防火墙和虚拟网络
并添加IP地址

oug3syen

oug3syen2#

请注意,在启用所有IP地址或将您的IP地址添加到白名单后,大约需要1分钟才能反映出更改。

xu3bshqb

xu3bshqb3#

用户似乎没有执行此操作的权限。请转到IAM并执行执行此操作所需的角色分配。我遇到过类似的情况,无法在SA中创建cobtainer。在为我的登录名分配参与者角色后,此操作成功了。

相关问题