使用 .NET 將資料附加至附加 Blob
您可以藉由建立附加 Blob,將資料附加至 Blob。 附加 Blob 和區塊 Blob 相似,由區塊所組成,但已針對附加作業最佳化。 附加 Blob 很適合某些案例,例如記錄虛擬機器中的資料。
注意
本文中的範例假設您已使用開始使用 Azure Blob 儲存體和 .NET 文章中的指引來建立 BlobServiceClient 物件。 Azure 儲存體中的 Blob 會組織成容器。 在您可以上傳 Blob 之前,您必須先建立一個容器。 若要了解如何建立容器,請參閱在 Azure 儲存體中透過 .NET 建立容器。
建立附加 Blob 並附加資料
使用這些方法來建立附加 Blob。
使用下列其中一種方法,將資料附加至該附加 Blob:
每個附加作業的位元組大小上限是由 AppendBlobMaxAppendBlockBytes 屬性所定義。 下列範例會建立附加 Blob,並將記錄資料附加至該 Blob。 這個範例會使用 AppendBlobMaxAppendBlockBytes 屬性來判斷是否需要多個附加作業。
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;
}
}
另請參閱
- 了解區塊 Blob、附加 Blob 和分頁 Blob
- OpenWrite / OpenWriteAsync
- 附加區塊 (REST API)