Azure Download Large Block в блоках с функциональностью паузы возобновления в JAVA - PullRequest
0 голосов
/ 18 марта 2019

Используя Java SDK большого двоичного хранилища Azure, можно ли загрузить большой файл из большого двоичного хранилища Azure с помощью функции возобновления?

1 Ответ

0 голосов
/ 18 марта 2019

Абсолютно да. Согласно справке Azure REST API Get Blob для Stoage Service, существует параметр x-ms-range заголовков запросов для загрузки части BLOB-объекта.

х-мс-диапазон

Дополнительно. Возврат только байтов большого двоичного объекта в указанном диапазоне. Если указаны и Range, и x-ms-range, служба использует значение x-ms-range. Если ни то, ни другое не указано, возвращается все содержимое BLOB-объекта. См. Указание заголовка диапазона для операций службы BLOB-объектов для получения дополнительной информации.

Таким образом, вы можете возобновить процесс загрузки, передав значение x-ms-range с помощью bytes=<the byte size of your downloaded>- в непрерывную загрузку полного хвоста большого двоичного объекта в рабочем потоке.

Или, учитывая производительность, вы можете сначала получить размер байта большого двоичного объекта, а затем использовать x-ms-range для загрузки отдельных фрагментов большого двоичного объекта в несколько рабочих потоков и объединения фрагментов большого двоичного объекта в завершенный.

В Azure Storage for Java v8 (Legacy) напрямую использовать метод downloadRange для CloudBlob с параметром offset и length (равняется x-ms-range: <offset>-<offset+length>).

В Azure Storage for Java v10 для передачи объекта BlobRange в download метод BlobURL.

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