Как данные разбиваются на части при использовании UploadFromStreamAsync и DownloadToStreamAsync при загрузке в блоб блоб - PullRequest
0 голосов
/ 19 марта 2019

Я только начал изучать хранилище BLOB-объектов Azure.Я сталкивался с различными способами загрузки и скачивания данных.Одна вещь, которая озадачивает меня, когда что использовать.

Меня в основном интересует PutBlockAsync в сочетании с PutBlockListAsync и UploadFromStreamAsync.Насколько я понимаю, при использовании PutBlockAsync пользователь может разбить данные на порции и убедиться, что каждый порог находится в пределах ограничений размера BLOB-блоков Azure.Существует идентификатор, связанный с каждым загруженным чанком.В конце все идентификаторы фиксируются.

Как это работает при использовании UploadFromStreamAsync?Кто занимается обработкой данных и их загрузкой.

Почему бы не преобразовать данные в Stream и постоянно использовать UploadFromStreamAsync и избегать двух коммитов?

1 Ответ

1 голос
/ 20 марта 2019

Вы можете использовать fiddler и наблюдать, что происходит при использовании UploadFromStreamAsync.

Если файл больше (более 256 МБ), например, 500 МБ, Put Block и Put Block List api вызываются в фоновом режиме (они также вызываются при использовании метода PutBlockAsync и PutBlockListAsync)

Если файл меньше 256 МБ, то он (UploadFromStreamAsync) вызовет Поместите API-интерфейс Blob в фоновом режиме.

Я использую UploadFromStreamAsync и загружаю файл размером 600 МБ, затем откройте фиддер.

Вот некоторые выводы из фиддера:

1. Большой файл разбивается на мелкие (4 МБ) один за другим и вызывает Put Block api в фоновом режиме:

enter image description here

2. В конце будет вызываться API Put Block List:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...