Bagikan melalui


Menambahkan data ke blob tambahan dengan .NET

Anda dapat menambahkan data ke blob dengan membuat blob tambahan. Blob tambahan terdiri dari blok seperti blob blok, tetapi dioptimalkan untuk operasi tambahan. Blob tambahan sangat ideal untuk skenario seperti mencatat data dari komputer virtual.

Catatan

Contoh dalam artikel ini mengasumsikan bahwa Anda telah membuat objek BlobServiceClient dengan menggunakan panduan di artikel Memulai Azure Blob Storage dan .NET. Blob di Azure Storage diatur ke dalam kontainer. Sebelum mengunggah blob, Anda harus terlebih dahulu membuat kontainer. Untuk mempelajari cara membuat kontainer, lihat Membuat kontainer di Azure Storage dengan .NET.

Membuat blob tambahan dan data tambahan

Menggunakan metode ini untuk membuat blob tambahan.

Gunakan salah satu dari metode ini untuk menambahkan data ke blob tambahan tersebut:

Ukuran maksimum dalam byte dari setiap operasi penambahan ditentukan oleh properti AppendBlobMaxAppendBlockBytes. Contoh berikut membuat blob tambahan dan menambahkan data log ke blob tersebut. Contoh ini menggunakan properti AppendBlobMaxAppendBlockBytes untuk menentukan apakah beberapa operasi penambahan diperlukan.

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

Lihat juga