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äggsblobbar består av block precis som blockblobbarna, men är optimerade för tilläggsåtgärder. Tilläggsblobar passar utmärkt för åtgärder som att logga data från virtuella datorer.

Anteckning

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