다음을 통해 공유


Blob 인덱스 태그를 사용하여 .NET으로 데이터 관리 및 찾기

이 문서에서는 Blob 인덱스 태그를 사용하여 .NET용 Azure Storage 클라이언트 라이브러리를 사용하여 데이터를 관리하고 찾는 방법을 보여 줍니다.

필수 조건

환경 설정

기존 프로젝트가 없는 경우 이 섹션에서는 .NET용 Azure Blob Storage 클라이언트 라이브러리로 작업하도록 프로젝트를 설정하는 방법을 보여 줍니다. 이 단계에는 패키지 설치, 지시문 추가 using 및 권한 있는 클라이언트 개체 만들기가 포함됩니다. 자세한 내용은 Azure Blob Storage 및 .NET 시작을 참조하세요.

패키지 설치

프로젝트 디렉터리에서 dotnet add package 명령을 사용하여 Azure Blob Storage 및 Azure ID 클라이언트 라이브러리용 패키지를 설치합니다. Azure 서비스에 암호 없이 연결하려면 Azure.Identity 패키지가 필요합니다.

dotnet add package Azure.Storage.Blobs
dotnet add package Azure.Identity

using 지시문 추가

코드 파일의 맨 위에 다음 using 지시문을 추가합니다.

using Azure.Identity;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using Azure.Storage.Blobs.Specialized;

이 문서의 일부 코드 예제에는 추가 using 지시문이 필요할 수 있습니다.

클라이언트 개체 만들기

Blob Storage에 앱을 연결하려면 BlobServiceClient 인스턴스를 만듭니다. 다음 예에서는 권한 부여를 위해 DefaultAzureCredential을 사용하여 클라이언트 개체를 만드는 방법을 설명합니다.

public BlobServiceClient GetBlobServiceClient(string accountName)
{
    BlobServiceClient client = new(
        new Uri($"https://{accountName}.blob.core.windows.net"),
        new DefaultAzureCredential());

    return client;
}

.NET 앱에서 종속성 주입을 위해 서비스 클라이언트를 등록할 수도 있습니다. 클라이언트 개체 만들기 및 관리에 대한 자세한 내용은 데이터 리소스와 상호 작용하는 클라이언트 개체 만들기 및 관리를 참조하세요.

권한 부여

권한 부여 메커니즘에는 Blob 인덱스 태그를 사용하는 데 필요한 권한이 있어야 합니다. Microsoft Entra ID를 사용하여 권한 부여(권장)하려면 Azure RBAC 기본 제공 역할 Storage Blob 데이터 소유자 이상이 필요합니다. 자세한 내용은 Blob 태그 가져오기(REST API), Blob 태그 설정(REST API) 또는 태그별 Blob 찾기(REST API)에 대한 권한 부여 지침을 참조하세요.

Blob 인덱스 태그 정보

Blob 인덱스 태그는 키-값 태그 특성을 사용하여 스토리지 계정의 데이터를 분류합니다. 이러한 태그는 데이터를 쉽게 찾을 수 있도록 검색 가능한 다차원 인덱스로 자동으로 인덱싱되고 표시됩니다. 이 문서에서는 Blob 인덱스 태그를 사용하여 데이터를 설정하고 가져오고 검색하는 방법을 보여 줍니다.

Blob 인덱스 태그는 계층 구조 네임스페이스를 사용하도록 설정한 스토리지 계정에 대해 지원되지 않습니다. 알려진 문제 및 제한과 Blob 인덱스 태그 기능에 대해 자세히 알아보려면 Blob 인덱스 태그를 사용하여 Azure Blob 데이터 관리 및 찾기를 참조하세요.

태그 설정

코드에 다음 메커니즘 중 하나를 통해 Blob 데이터에 대한 액세스 권한이 있는 경우 인덱스 태그를 설정할 수 있습니다.

자세한 내용은 Blob 인덱스 태그 설정을 참조하세요.

다음 방법 중 하나를 사용하여 태그를 설정할 수 있습니다.

다음 예제에서는 이 작업을 수행합니다.

public static async Task SetTags(BlobClient blobClient)
{
    Dictionary<string, string> tags = 
        new Dictionary<string, string>
    {
        { "Sealed", "false" },
        { "Content", "image" },
        { "Date", "2020-04-20" }
    };

    await blobClient.SetTagsAsync(tags);
}

다음 예제와 같이 빈 [사전]을 SetTags 또는 SetTagsAsync 메서드에 전달하여 모든 태그를 삭제할 수 있습니다.

Dictionary<string, string> noTags = new Dictionary<string, string>();
await blobClient.SetTagsAsync(noTags);
관련된 문서
Blob 인덱스 태그를 사용하여 Azure Blob 데이터 관리 및 찾기
Blob 태그 설정(REST API)

태그 가져오기

코드에 다음 메커니즘 중 하나를 통해 Blob 데이터에 대한 액세스 권한이 있는 경우 인덱스 태그를 가져올 수 있습니다.

자세한 내용은 Blob 인덱스 태그 가져오기 및 나열을 참조하세요.

다음 방법 중 하나를 사용하여 태그를 설정할 수 있습니다.

다음 예제에서는 이 작업을 수행합니다.

public static async Task GetTags(BlobClient blobClient)
{
    Response<GetBlobTagResult> tagsResponse = await blobClient.GetTagsAsync();

    foreach (KeyValuePair<string, string> tag in tagsResponse.Value.Tags)
    {
        Console.WriteLine($"{tag.Key}={tag.Value}");
    }
}

Blob 인덱스 태그를 사용하여 데이터 필터링 및 찾기

코드에 다음 메커니즘 중 하나를 통해 Blob 데이터에 대한 액세스 권한이 있는 경우 인덱스 태그를 사용하여 데이터를 찾고 필터링할 수 있습니다.

자세한 내용은 Blob 인덱스 태그를 사용하여 데이터 찾기를 참조하세요.

참고 항목

인덱스 태그를 사용하여 이전 버전을 검색할 수 없습니다. 이전 버전의 태그는 Blob 인덱스 엔진에 전달되지 않습니다. 자세한 내용은 조건 및 알려진 문제를 참조하세요.

다음 방법 중 하나를 사용하여 데이터를 찾을 수 있습니다.

다음 예제에서는 특정 범위 사이에 있는 날짜로 태그가 지정된 모든 Blob을 찾습니다.

public static async Task FindBlobsbyTags(BlobServiceClient serviceClient)
{
    string query = @"""Date"" >= '2020-04-20' AND ""Date"" <= '2020-04-30'";

    // Find Blobs given a tags query
    Console.WriteLine("Find Blob by Tags query: " + query + Environment.NewLine);

    List<TaggedBlobItem> blobs = new List<TaggedBlobItem>();
    await foreach (TaggedBlobItem taggedBlobItem in serviceClient.FindBlobsByTagsAsync(query))
    {
        blobs.Add(taggedBlobItem);
    }

    foreach (var filteredBlob in blobs)
    {
        
        Console.WriteLine($"BlobIndex result: ContainerName= {filteredBlob.BlobContainerName}, " +
            $"BlobName= {filteredBlob.BlobName}");
    }

}

리소스

.NET용 Azure Blob Storage 클라이언트 라이브러리를 사용하여 인덱스 태그를 통해 데이터를 관리하고 찾는 방법에 대한 자세한 내용은 다음 리소스를 참조하세요.

REST API 작업

.NET용 Azure SDK에는 Azure REST API를 기반으로 빌드되는 라이브러리가 포함되어 있으므로 익숙한 .NET 패러다임을 통해 REST API 작업과 상호 작용할 수 있습니다. Blob 인덱스 태그를 관리하고 사용하기 위한 클라이언트 라이브러리 메서드는 다음 REST API 작업을 사용합니다.

클라이언트 라이브러리 리소스

참고 항목