다음을 통해 공유


.NET을 사용하여 추가 Blob에 데이터 추가

추가 Blob을 만들어 데이터를 Blob에 추가할 수 있습니다. 추가 Blob은 블록 Blob과 같이 블록으로 구성되지만 추가 작업에 최적화되어 있습니다. 추가 Blob은 가상 머신의 데이터 로깅 같은 시나리오에 적합합니다.

참고 항목

이 문서의 예에서는 Azure Blob Storage 및 .NET 시작 문서의 지침을 사용하여 BlobServiceClient 개체를 만들었다고 가정합니다. Azure Storage의 BLOB은 컨테이너로 구성됩니다. Blob을 업로드하려면 먼저 컨테이너를 만들어야 합니다. 컨테이너를 만드는 방법을 알아보려면 .NET을 사용하여 Azure Storage에서 컨테이너 만들기를 참조하세요.

추가 Blob 만들기 및 데이터 추가

이러한 메서드를 사용하여 추가 Blob을 만듭니다.

다음 방법 중 하나를 사용하여 해당 추가 Blob에 데이터를 추가합니다.

각 추가 작업의 최대 크기(바이트)는 AppendBlobMaxAppendBlockBytes 속성에 의해 정의됩니다. 다음 예제에서는 추가 Blob을 만들고 해당 Blob에 로그 데이터를 추가합니다. 이 예에서는 AppendBlobMaxAppendBlockBytes 속성을 사용하여 여러 추가 작업이 필요한지 여부를 결정합니다.

static async Task AppendToBlob(
    BlobContainerClient containerClient,
    MemoryStream logEntryStream,
    string logBlobName)
{
    AppendBlobClient appendBlobClient = containerClient.GetAppendBlobClient(logBlobName);

    await appendBlobClient.CreateIfNotExistsAsync();

    int maxBlockSize = appendBlobClient.AppendBlobMaxAppendBlockBytes;
    long bytesLeft = logEntryStream.Length;
    byte[] buffer = new byte[maxBlockSize];
    while (bytesLeft > 0)
    {
        int blockSize = (int)Math.Min(bytesLeft, maxBlockSize);
        int bytesRead = await logEntryStream.ReadAsync(buffer.AsMemory(0, blockSize));
        await using (MemoryStream memoryStream = new MemoryStream(buffer, 0, bytesRead))
        {
            await appendBlobClient.AppendBlockAsync(memoryStream);
        }
        bytesLeft -= bytesRead;
    }
}

참고 항목