Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Вы можете добавить данные в блоб, создав добавочный блоб. Добавляемые блобы состоят из блоков, как блочные блобы, но они оптимизированы для операций добавления. Блобы добавления идеально подходят для сценариев, таких как ведение журналов данных с виртуальных машин.
Примечание.
В примерах этой статьи предполагается, что вы создали объект BLOBServiceClient с помощью руководства в статье "Начало работы с хранилищем BLOB-объектов Azure" и .NET . Блобы в Azure Storage организованы в контейнеры. Прежде чем вы сможете загрузить блоб, сначала необходимо создать контейнер. Сведения о создании контейнера см. в статье "Создание контейнера в службе хранилища Azure" с помощью .NET.
Создать дополняемый двоичный объект и добавить данные
Используйте эти методы для создания добавляемого блоба.
Используйте любой из этих методов, чтобы добавить данные в append blob.
Максимальный размер в байтах каждой операции добавления определяется свойством AppendBlobMaxAppendBlockBytes . В следующем примере создается блоб-дополнение и добавляются данные журнала в этот блоб. В этом примере свойство 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;
}
}