Этот запрос не авторизован для выполнения этой операции. Azure blobClient - PullRequest
0 голосов
/ 14 мая 2019

У меня есть следующий код для возврата списка контейнеров, использующих пакет nuget WindowsAzure.Storage:

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;
    }

}

, когда я запускаю это, я получаю следующую ошибку на client.ListContainersSegmentedAsync (continueationToken) .Result:

System.AggregateException: 'Произошла одна или несколько ошибок.(Этот запрос не авторизован для выполнения этой операции.) '

, и я не вижу, как установить авторизацию для запроса.

Мой вопрос: как обойти это сообщение об ошибке

1 Ответ

1 голос
/ 14 мая 2019

Спасибо @gaurav Mantri за этот ответ.

Проблема заключалась в том, что IP-адрес моего клиента не был добавлен в правила брандмауэра для учетной записи хранения.

Чтобы изменить это, перейдите на:

Учетные записи хранения> {yourAccount}> Брандмауэры и виртуальные сети

и добавьте свой IP-адрес

...