Dela via


Lägga till data i en tilläggsblob med .NET

Du kan lägga till data i en blob genom att skapa en tilläggsblob. Tilläggsblobar består av block, liknande block-blobar, men är optimerade för tilläggsåtgärder. Tilläggsblobar är idealiska för scenarier som loggning av data från virtuella datorer.

Anmärkning

Exemplen i den här artikeln förutsätter att du har skapat ett BlobServiceClient-objekt med hjälp av vägledningen i artikeln Kom igång med Azure Blob Storage och .NET . Blobar i Azure Storage är ordnade i containrar. Innan du kan ladda upp en blob måste du först skapa en container. Information om hur du skapar en container finns i Skapa en container i Azure Storage med .NET.

Skapa en tilläggsblob och lägga till data

Använd dessa metoder för att skapa en tilläggsblob.

Använd någon av dessa metoder för att lägga till data i den tilläggsbloben:

Den maximala storleken i byte för varje tilläggsåtgärd definieras av egenskapen AppendBlobMaxAppendBlockBytes . I följande exempel skapas en tilläggsblob och loggdata läggs till i den bloben. I det här exemplet används egenskapen AppendBlobMaxAppendBlockBytes för att avgöra om flera tilläggsåtgärder krävs.

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

Se även