Azure загружает большой блок по частям с функцией приостановки возобновления в JAVA

#azure #download #blob #azure-storage #azure-java-sdk

#azure #Скачать #большой двоичный объект #azure-хранилище #azure-java-sdk

Вопрос:

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

Комментарии:

1. Вы уже что-нибудь пробовали?

2. Я новичок в Azure, я попробовал метод BlockBlobURL.download для загрузки фрагментов, и он отлично работает. Но это не удовлетворяет моему единственному варианту использования, поскольку он не может возобновить загрузку, когда во время загрузки возникает ошибка.

3. @RajanPatidar Какую версию Azure Stoarge SDK для Java вы использовали сейчас?

Ответ №1:

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

x-ms-диапазон

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

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

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

В Azure Storage для Java версии 8 (устаревшей), чтобы напрямую использовать downloadRange метод CloudBlob с параметром offset и length (он равен x-ms-range: <offset>-<offset length> ).

В Azure Storage для Java версии 10, чтобы передать BlobRange объект download методу BlobURL .

Комментарии:

1. Спасибо. Я почерпнул идею из этого.