Azure Истечение срока действия блока "промежуточной" области блоба - PullRequest
0 голосов
/ 26 мая 2020
• 1000 активен. Используемый подход заключается в загрузке видео с использованием блоков, чтобы я мог обрабатывать частичную загрузку и возобновление загрузки, когда приложение засыпает / просыпается - эта часть реализована и работает правильно.

Я использую BlockBlobClient.StageBlockAsync, где в документации указано: «Операция StageBlockAsyn c создает новый блок как часть« промежуточной области »блочного двоичного объекта, который в конечном итоге будет зафиксирован»

Источник: https://docs.microsoft.com/en-us/dotnet/api/azure.storage.blobs.specialized.blockblobclient.stageblockasync?view=azure-dotnet

Теперь этот подход очень хорошо работает для меня и дает желаемые результаты, однако я не могу найти никакого упоминания о том, истекает ли срок действия отдельного блока, если не была предпринята операция фиксации.

Сценарий: в приложении есть 7 блоков для загрузки, 3 успешно загруженных, затем приложение закрывается - когда приложение возобновляет работу, оно должно загрузить оставшиеся блоки и зафиксировать их.

Если приложение не было открыто для когда-нибудь истечет ли срок загруженных блоков?

Спасибо

Ответы [ 2 ]

2 голосов
/ 26 мая 2020

Теперь этот подход очень хорошо работает для меня и дает желаемые результаты, однако я не могу найти никакого упоминания о том, истекает ли срок действия отдельного блока, если не была предпринята операция фиксации.

Срок действия отдельных блоков истекает через 7 дней, если они не были зафиксированы. Из документации REST API link:

Если вы вызываете Put Block для еще не существующего большого двоичного объекта, создается новый блочный большой двоичный объект с длиной содержимого 0 Этот большой двоичный объект перечисляется операцией List Blobs, если указан параметр include = uncommittedblobs. Блок или блоки, которые вы загрузили, не фиксируются до тех пор, пока вы не вызовете команду Put Block List для нового большого двоичного объекта. Созданный таким образом blob хранится на сервере в течение недели; если вы не добавили больше блоков или зафиксировали блоки в большой двоичный объект в течение этого периода времени, этот большой двоичный объект будет удален сборщиком мусора.

Здесь также упоминается то же самое: https://docs.microsoft.com/en-us/dotnet/api/azure.storage.blobs.specialized.blockblobclient?view=azure-dotnet (последний абзац).

0 голосов
/ 12 августа 2020

Одна неделя, согласитесь с ответом Прекращено участие , вы также можете найти его, посмотрев код:

namespace Azure.Storage.Blobs.Specialized 

public class BlockBlobClient : BlobBaseClient

содержит ответ в сводке

Сводка: ... Если вы не зафиксируете какой-либо блок для этого большого двоичного объекта, он и его незафиксированные блоки будут сброшены через одну неделю после последней успешной загрузки блока. Все незафиксированные блоки также отбрасываются, когда новый BLOB-объект с тем же именем создается с использованием одного шага (а не двухэтапного процесса загрузки и фиксации блока).

Кроме того, вы можете использовать следующее (которое может быть полезно для проверки того, истек ли срок действия каких-либо блоков и пропали ли они)

BlockList blocks = await blockBlob.GetBlockListAsync();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...