Как получить данные blob-объектов из контейнера azure по частям с помощью вызова API?

#node.js #azure #rest #get #azure-blob-storage

Вопрос:

Я пытаюсь извлечь данные из контейнера больших двоичных объектов azure с помощью вызова API, он работает нормально,но для файлов размером 20 или 30 МБ требуется почти 3-4 минуты, чтобы получить ответ от API, что не очень хорошо с точки зрения пользователя, Есть ли способ получать данные из azure по частям, чтобы мы могли показывать пользователю прогрессивные данные ? Ниже приведен фрагмент кода узла js, который я использую для получения данных :

 var request = require('request').defaults({ encoding: null });
const fileUrl = "File Url";
request.get(fileUrl, function (error, response, body) {
    if (!error amp;amp; response.statusCode == 200) {
        const image = body.toString('base64');
        res.status(200).json({ image })
    } else {
        res.status(400).json({})
    }
});
 

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

1. Итак, вы ищете демонстрационную версию, показывающую индикатор выполнения при загрузке?

2. Нет , я хочу отобразить фрагментированные данные, которые я получу из azure, чтобы у пользователя возникло представление о том , что данные еще не загружены полностью, как показано на приведенном ниже URL-адресе, сначала отображаются размытые данные, а затем отображаются данные в полном разрешении, и вы обнаружите, что он получает данные по частям, когда вы проходите через сеть сайта. f.giorlando.org/2018/07/web-viewers-for-fmri

3. Пожалуйста, отредактируйте свой вопрос и включите код, который вы написали до сих пор.

4. Добавлен код, пожалуйста, проверьте

Ответ №1:

Запросите длину содержимого вашего большого двоичного объекта:

Размер большого двоичного объекта в байтах. Для большого двоичного объекта страницы этот заголовок возвращает значение заголовка x-ms-blob-содержимого-длины, который хранится вместе с большим двоичным объектом.

Получите большой двоичный объект с помощью заголовков диапазона:

Диапазон Опционально. Возвращает только байты большого двоичного объекта в указанном диапазоне.

Второй формат, байты=начальный байт-конечный байт, доступен для запросов, использующих все версии (2009-04-14 до последней версии), и для всех версий службы эмулятора хранилища. Этот диапазон будет возвращать байты со смещения от начального байта до конечного байта. Например, чтобы указать диапазон, охватывающий первые 512 байт большого двоичного объекта, вы должны передать один из следующих заголовков:

Диапазон: байт=0-511