Aracılığıyla paylaş


.NET ile ekleme blobuna veri ekleme

Ekleme blobu oluşturarak bloba veri ekleyebilirsiniz. Ekleme blobları blok blobları gibi bloklardan oluşur, ancak ekleme işlemleri için iyileştirilir. Eklenebilir bloblar, sanal makinelerdeki verileri günlüğe kaydetme gibi senaryolar için idealdir.

Uyarı

Bu makaledeki örneklerde, Azure Blob Depolama ve .NET ile çalışmaya başlama makalesindeki yönergeleri kullanarak bir BlobServiceClient nesnesi oluşturduğunuz varsayılır. Azure Depolama'daki bloblar kapsayıcılar halinde düzenlenir. Blobu karşıya yükleyebilmeniz için önce bir kapsayıcı oluşturmanız gerekir. Kapsayıcı oluşturmayı öğrenmek için bkz. .NET ile Azure Depolama'da kapsayıcı oluşturma.

Ekleme blobu oluşturma ve verileri ekleme

Ekleme blobu oluşturmak için bu yöntemleri kullanın.

Bu ekleme blobunun sonuna veri eklemek için bu yöntemlerden birini kullanın:

Her ekleme işleminin bayt cinsinden en büyük boyutu AppendBlobMaxAppendBlockBytes özelliği tarafından tanımlanır. Aşağıdaki örnek bir ekleme blobu oluşturur ve günlük verilerini bu bloba ekler. Bu örnek, birden çok ekleme işleminin gerekli olup olmadığını belirlemek için AppendBlobMaxAppendBlockBytes özelliğini kullanır.

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

Ayrıca bkz.