Adatok hozzáfűzése egy hozzáfűző blobhoz .NET-tel
Egy hozzáfűző blob létrehozásával adatokat fűzhet hozzá egy blobhoz. A hozzáfűző blobok a blokkblobokhoz hasonlóan blokkokból állnak, azonban a hozzáfűzési műveletekhez vannak optimalizálva. A hozzáfűző blobok ideálisak például a virtuális gépek adatainak naplózásához és hasonló forgatókönyvekhez.
Megjegyzés
A cikkben szereplő példák feltételezik, hogy létrehozott egy BlobServiceClient objektumot az Első lépések a Azure Blob Storage és a .NET című cikkben található útmutatás alapján. Az Azure Storage-beli blobok tárolókba vannak rendezve. A blob feltöltése előtt létre kell hoznia egy tárolót. A tárolók létrehozásának módjáról a Tároló létrehozása az Azure Storage-ban .NET-tel című témakörben olvashat.
Hozzáfűző blob és hozzáfűző adatok létrehozása
Ezekkel a módszerekkel hozhat létre hozzáfűző blobot.
Az alábbi módszerek bármelyikével hozzáfűzhet adatokat a hozzáfűző blobhoz:
Az egyes hozzáfűzési műveletek bájtban megadott maximális méretét a AppendBlobMaxAppendBlockBytes tulajdonság határozza meg. Az alábbi példa létrehoz egy hozzáfűző blobot, és hozzáfűzi a naplóadatokat az adott blobhoz. Ez a példa a AppendBlobMaxAppendBlockBytes tulajdonságot használja annak meghatározásához, hogy szükség van-e több hozzáfűzési műveletre.
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;
}
}