.NET을 사용하여 블록 Blob의 액세스 계층 설정 또는 변경

이 문서에서는 .NET용 Azure Storage 클라이언트 라이브러리를 사용하여 블록 Blob에 대한 액세스 계층을 설정하거나 변경하는 방법을 보여줍니다.

필수 조건

  • 이 문서에서는 .NET용 Azure Blob Storage 클라이언트 라이브러리로 작업하도록 프로젝트가 이미 설정되어 있다고 가정합니다. 패키지 설치, using 지시문 추가 및 권한 있는 클라이언트 개체 만들기를 포함하여 프로젝트를 설정하는 방법에 대한 자세한 내용은 Azure Blob Storage 및 .NET 시작을 참조하세요.
  • 권한 부여 메커니즘에는 Blob의 액세스 계층을 설정할 수 있는 권한이 있어야 합니다. 자세한 내용은 다음 REST API 작업에 대한 권한 부여 지침을 참조하세요.

블록 Blob 액세스 계층 정보

스토리지 요구에 따른 비용을 관리하기 위해 액세스 빈도 및 보존 기간을 기준으로 데이터를 구성하는 것이 도움이 될 수 있습니다. Azure Storage는 사용 방법에 따라 Blob 데이터를 가장 비용 효율적인 방식으로 저장할 수 있도록 다양한 액세스 계층을 제공합니다.

Blob 데이터를 위한 액세스 계층

Azure Storage 액세스 계층에는 다음이 포함됩니다.

  • 핫 계층 - 자주 액세스하거나 수정하는 데이터를 저장하는 데 최적화된 온라인 계층입니다. 핫 계층은 스토리지 비용이 가장 높지만 액세스 비용은 가장 낮습니다.
  • 쿨 계층 - 자주 액세스하거나 수정하지 않는 데이터를 저장하는 데 최적화된 온라인 계층입니다. 쿨 계층의 데이터는 최소 30일 동안 저장해야 합니다. 쿨 계층은 핫 계층에 비해 스토리지 비용이 낮고 액세스 비용은 높습니다.
  • 콜드 계층 - 자주 액세스하거나 수정하지 않는 데이터를 저장하는 데 최적화된 온라인 계층입니다. 콜드 계층의 데이터는 최소 90일 동안 저장해야 합니다. 콜드 계층은 쿨 계층에 비해 스토리지 비용이 낮고 액세스 비용은 높습니다.
  • 보관 계층 - 거의 액세스하지 않고 요구되는 대기 시간(시간 기준)이 유연한 데이터를 저장하는 데 최적화된 오프라인 계층입니다. 보관 계층의 데이터는 최소 180일 동안 저장해야 합니다.

액세스 계층에 대한 자세한 내용은 Blob 데이터에 대한 액세스 계층을 참조하세요.

Blob이 보관 액세스 계층에 있는 동안에는 오프라인으로 간주되며 읽거나 수정할 수 없습니다. 보관된 Blob의 데이터를 읽거나 수정하려면 먼저 Blob을 온라인 계층으로 리하이드레이션해야 합니다. 보관 계층에서 온라인 계층으로 Blob을 리하이드레이션하는 방법에 대한 자세한 내용은 보관 계층에서 Blob 리하이드레이션을 참조하세요.

제한 사항

액세스 계층 설정은 블록 Blob에서만 허용됩니다. 블록 Blob의 액세스 계층 설정의 제한 사항에 대해서는 내용은 Blob 계층 설정(REST API)을 참조하세요.

참고 항목

.NET을 사용하여 액세스 계층을 Cold로 설정하려면 최소 클라이언트 라이브러리 버전 12.15.0을 사용해야 합니다.

업로드 동안 Blob의 액세스 계층 설정

BlobUploadOptions 클래스를 사용하여 업로드 시 BLOB의 액세스 계층을 설정할 수 있습니다. 다음 코드 예에서는 BLOB을 업로드할 때 액세스 계층을 설정하는 방법을 보여줍니다.

public static async Task UploadWithAccessTierAsync(
    BlobContainerClient containerClient,
    string localFilePath)
{
    string fileName = Path.GetFileName(localFilePath);
    BlockBlobClient blockBlobClient = containerClient.GetBlockBlobClient(fileName);

    var uploadOptions = new BlobUploadOptions()
    {
        AccessTier = AccessTier.Cool
    };

    FileStream fileStream = File.OpenRead(localFilePath);
    await blockBlobClient.UploadAsync(fileStream, uploadOptions);
    fileStream.Close();
}

.NET을 사용하여 Blob을 업로드하는 방법에 대한 자세한 내용은 .NET를 사용하여 Blob 업로드를 참조하세요.

기존 블록 Blob에 대한 액세스 계층 변경

다음 함수 중 하나를 사용하여 기존 블록 Blob의 액세스 계층을 변경할 수 있습니다.

다음 코드 예제에서는 기존 Blob에 대한 액세스 계층을 Cool로 변경하는 방법을 보여줍니다.

public static async Task ChangeBlobAccessTierAsync(
    BlobClient blobClient)
{
    // Change the access tier of the blob to cool
    await blobClient.SetAccessTierAsync(AccessTier.Cool);
}

보관된 Blob을 리하이드레이션하는 경우 필요에 따라 rehydratePriority 매개 변수를 High 또는 Standard로 설정할 수 있습니다.

Blob을 다른 액세스 계층으로 복사

복사 작업의 일부로 액세스 계층을 지정하여 기존 블록 Blob의 액세스 계층을 변경할 수 있습니다. 복사 작업 중에 액세스 계층을 변경하려면 BlobCopyFromUriOptions 클래스를 사용하고 AccessTier 속성을 지정합니다. 복사 작업을 사용하여 보관 계층에서 Blob을 리하이드레이션하는 경우 필요에 따라 RehydratePriority 속성을 High 또는 Standard로 설정할 수 있습니다.

다음 코드 예제에서는 복사 작업을 사용하여 보관된 Blob을 Hot 계층으로 리하이드레이션하는 방법을 보여줍니다.

public static async Task RehydrateBlobUsingCopyAsync(
    BlobClient sourceArchiveBlob,
    BlobClient destinationRehydratedBlob)
{
    // Note: the destination blob must have a different name than the archived source blob

    // Configure copy options to specify hot tier and standard priority
    BlobCopyFromUriOptions copyOptions = new()
    {
        AccessTier = AccessTier.Hot,
        RehydratePriority = RehydratePriority.Standard
    };

    // Copy source blob from archive tier to destination blob in hot tier
    CopyFromUriOperation copyOperation = await destinationRehydratedBlob
        .StartCopyFromUriAsync(sourceArchiveBlob.Uri, copyOptions);
    await copyOperation.WaitForCompletionAsync();
}

.NET을 사용하여 Blob을 복사하는 방법에 대해 자세히 알아보려면 .NET을 사용하여 Blob 복사를 참조하세요.

리소스

.NET용 Azure Blob Storage 클라이언트 라이브러리를 사용하여 액세스 계층을 설정하는 방법에 대해 자세히 알아보려면 다음 리소스를 참조하세요.

REST API 작업

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

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

코드 샘플

참고 항목