Поддерживает ли Azure Blob Storage частичное содержимое 206 по умолчанию? - PullRequest
1 голос
/ 08 мая 2020

Я использую Azure хранилище BLOB-объектов для хранения всех моих изображений и видео. Я реализовал функцию загрузки и извлечения, и она работает неплохо. Я столкнулся с одной проблемой при загрузке видео, потому что, когда я использую URL-адрес, который создается после загрузки этого видео в хранилище BLOB-объектов Azure, он сначала загружает весь контент, прежде чем отображать его пользователю. Итак, если размер видео составляет 100 МБ, он загрузит все 100 МБ, и до тех пор, пока пользователь не сможет увидеть видео.

Я провел много исследований и разработок и узнал об этом во время рендеринга видео, мне нужно получить частичное содержимое (статус 206), а не получать все видео за раз. После добавления заголовка запроса «Range: bytes-500» я попытался попасть по URL-адресу блога, но он все равно загружает весь контент. Итак, я проверил некоторые URL-адреса видео с открытым исходным кодом и попытался попасть по URL-адресу видео вместе с заголовком запроса «Диапазон», и он успешно дал статус ответа 206, что означает, что он правильно давал мне частичный контент вместо полного видео.

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

Может ли кто-нибудь помочь мне решить эту проблему или есть ли что-нибудь на портале Azure, которое Мне нужно включить? Это то, над чем я работаю уже неделю. Любая помощь будет очень признательна.

Спасибо! Оставайтесь в безопасности.

1 Ответ

1 голос
/ 02 июня 2020

Предположим, что Accept-Ranges не включен, из этого блога Я понял, что нужно установить версию службы по умолчанию .

Ниже приведен образец код для его реализации.

            var credentials = new StorageCredentials("account name", "account key");
            var account = new CloudStorageAccount(credentials, true);
            var client = account.CreateCloudBlobClient();
            var properties = client.GetServiceProperties();
            properties.DefaultServiceVersion = "2019-07-07";
            client.SetServiceProperties(properties);

Ниже приведено сравнение заголовков возврата после установки свойства.

До :

enter image description here

После :

enter image description here

...