.NET ile ekleme blob'una veri ekleme

Ekleme blobu oluşturarak bloba veri ekleyebilirsiniz. Ekleme blobları blok bloblarına benzer bloklardan oluşur ancak ekleme işlemleri için en iyi duruma getirilmiştir. Ekleme blobları sanal makine verilerini günlüğe kaydetme gibi senaryolar için idealdir.

Not

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 boyut üst sınırı 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 örnekte, birden çok ekleme işleminin gerekli olup olmadığını belirlemek için AppendBlobMaxAppendBlockBytes özelliği kullanılı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.