sourcetip

이 요청은 이 작업을 수행할 권한이 없습니다.애저블롭클라이언트

fileupload 2023. 6. 2. 21:17
반응형

이 요청은 이 작업을 수행할 권한이 없습니다.애저블롭클라이언트

다음 코드를 사용하여 컨테이너 목록을 반환합니다.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;
    }

}

내가 이것을 실행할 때, 나는 클라이언트에서 다음과 같은 오류를 받습니다.컨테이너 세그먼트 나열 비동기(계속)토큰). 결과:

System.Aggregate예외: '하나 이상의 오류가 발생했습니다.이 요청은 이 작업을 수행할 권한이 없습니다.)'

요청에 대한 권한을 설정하는 방법을 볼 수 없습니다.

제 질문은 이 오류 메시지를 통과하는 방법입니다.

이 답변에 대해 @gaurav Mantri에게 감사드립니다.

문제는 내 클라이언트 IP가 스토리지 계정의 방화벽 규칙에 추가되지 않았다는 것입니다.

변경하려면 다음으로 이동합니다.

스토리지 계정 > {yourAccount} > 네트워킹 > 방화벽 및 가상 네트워크

IP 주소를 추가합니다.

모두 활성화하거나 화이트리스트에 IP 주소를 추가한 후 변경 내용을 반영하는 데 약 1분이 소요됩니다.

사용자에게 작업을 수행할 권한이 없는 것 같습니다.IAM으로 이동하여 작업을 수행하는 데 필요한 역할 할당을 수행합니다.저는 SA에서 코바테이너를 만들 수 없는 비슷한 상황을 겪었습니다.로그인에 기여자 역할을 할당한 후 작동했습니다.

언급URL : https://stackoverflow.com/questions/56130784/this-request-is-not-authorized-to-perform-this-operation-azure-blobclient

반응형