BLOB-объект Azure - загрузка очень большого файла параллельно - PullRequest
0 голосов
/ 17 мая 2018

Я пытаюсь загрузить очень большой файл в хранилище BLOB-объектов Azure.Я использую Java с Azure SDK.Я хочу сделать это следующим образом -

  1. Разделить большой файл на более мелкие фрагменты.
  2. Загрузить все фрагменты параллельно в хранилище BLOB-объектов Azure.

Я могу выполнить эти задачи, написав код для разделения и загрузки, используя несколько потоков, но я ищу что-то, предоставленное самим SDK для выполнения вышеуказанных задач.Примеры или образцы, которые я нашел, где делают эти шаги явно.На данный момент я загружаю, используя следующий код -

blob.upload(stream, stream.length());

Может кто-нибудь указать мне правильное направление?

ОБНОВЛЕНИЕ -

После ввода @Gaurav MantriМой обновленный код выглядит как

BlobRequestOptions blobRequestOptions = new BlobRequestOptions();
blobRequestOptions.setConcurrentRequestCount(8);
blobRequestOptions.setSingleBlobPutThresholdInBytes(65000000);
blob.upload(stream, stream.length(), null, blobRequestOptions ,null);

Я загружаю файл размером 3 ГБ.Тем не менее, я не уверен, разделен ли файл или нет, потому что нет времени, затрачиваемого на загрузку.

1 Ответ

0 голосов
/ 17 мая 2018

Вы должны взглянуть на BlobRequestOptions класс в Java SDK.Там вас интересуют два метода:

Устанавливает одновременное количество одновременных запросов на операцию,Число одновременных запросов по умолчанию устанавливается в клиенте и по умолчанию равно 1, что указывает на отсутствие параллелизма.

Устанавливает размер порога, используемого для записи отдельного большого двоичного объекта.Пороговый размер по умолчанию устанавливается в клиенте и по умолчанию составляет 32 МБ.Вы можете изменить пороговый размер для этого запроса, установив это свойство.

То, что будет делать это свойство, заключается в том, что если он обнаруживает, что BLOB-объект, который вы пытаетесь загрузить, имеет размер, превышающий указанное значение,SDK автоматически разбивает этот блок на куски и загружает их.

...