Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Data můžete k objektu blob připojit vytvořením doplňovacího objektu blob. Appendovací objekty blob se skládají z bloků, podobně jako blokové objekty blob, ale jsou optimalizovány pro připojovací operace. Doplňovací objekty blob jsou ideální pro scénáře, jako jsou protokolování dat z virtuálních počítačů.
Poznámka:
Příklady v tomto článku předpokládají, že jste pomocí pokynů v článku Začínáme se službou Azure Blob Storage a .NET vytvořili objekt BlobServiceClient. Objekty blob ve službě Azure Storage jsou uspořádané do kontejnerů. Než budete moct nahrát objekt blob, musíte nejprve vytvořit kontejner. Informace o tom, jak vytvořit kontejner, najdete v tématu Vytvoření kontejneru ve službě Azure Storage pomocí .NET.
Vytvořte blob pro připojování a připojte data
Tyto metody slouží k vytvoření připojovacího blobu.
K přidání dat k danému objektu typu append blob použijte některou z těchto metod:
Maximální velikost v bajtech každé operace přidávání je definována vlastností AppendBlobMaxAppendBlockBytes. Následující příklad vytvoří připojovací blob a připojí protokolová data k tomuto blobu. Tento příklad používá AppendBlobMaxAppendBlockBytes vlastnost k určení, zda je vyžadováno více operací připojení.
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;
}
}