Обслуживание видеоконтента из хранилища BLOB-объектов Azure
Я пытаюсь обслуживать MP4-видео из хранилища BLOB-объектов Azure. Я могу заставить видео воспроизводиться в современных браузерах, убедившись, что тип контента Blob установлен на video/mp4
; однако я не могу искать в обратном направлении.
Удаление того же видео в корзину S3 дает желаемый результат, поэтому я исключаю проблемы с контентом.
Нужно ли настраивать роль хранилища определенным образом для обслуживания видеоконтента?
6 ответов
Из ответа @smarx мне не было ясно, как установить это для моего контейнера BLOB-объектов, но после некоторого поиска в Google я нашел код ниже. Просто выполните его в LINQPad, и видео начнет потоковую передачу:
var storageAccount = CloudStorageAccount.Parse("AccountName=<accountName>;AccountKey=<accountKeyBase64>;DefaultEndpointsProtocol=http");
var blobClient = storageAccount.CreateCloudBlobClient();
// Get the current service properties
var serviceProperties = blobClient.GetServiceProperties();
// Set the default service version to 2011-08-18 (or a higher version like 2012-03-01)
serviceProperties.DefaultServiceVersion = "2011-08-18";
// Save the updated service properties
blobClient.SetServiceProperties(serviceProperties);
Всем, кто хочет использовать Azure CLI:
az storage account blob-service-properties update --account-name [account_name] --default-service-version '2020-10-02'
Вы можете попробовать установить версию по умолчанию для вашей учетной записи хранения на 2011-08-18: http://blogs.msdn.com/b/windowsazurestorage/archive/2011/09/15/windows-azure-blobs-improved-http- заголовки для возобновления при загрузке и изменении в случае совпадения условий.aspx. Это улучшает несколько параметров в диапазоне запросов (вероятно, что делает прогрессивная загрузка в вашем браузере). Я не слышал ничего конкретного о воспроизведении видео, но попробовать не повредит.:-)
Для тех, кто приходит сюда из Google:
Azure имеет два типа учетных записей хранения: StorageV1 / V2 (опция по умолчанию выбирается при создании новой учетной записи) и BlobStorage.
Хотя опция StorageV2 может иметь больше функций, она не поддерживает partial content requests
Это означает, что Chrome не позволяет искать видео.
Вы можете определить тип хранилища на портале Azure, перейдя в свою учетную запись хранения> Свойства> Тип учетной записи.
Я попытался воспроизвести очень маленький объект, закодированный в формате MP4, непосредственно из видеоэлемента HTML5 с включенным элементом управления. Я мог использовать этот элемент управления для прокрутки моего видео вперед и назад.
Каков размер вашего видео контента? Также вы можете использовать Fiddler для проверки заголовков HTTP, чтобы убедиться, что они ожидаются или они точно совпадают, когда вы используете один и тот же большой двоичный объект из корзины S3?
Если вы можете поделиться ссылкой на BLOB, я могу быстро попробовать и посмотреть, в чем может быть проблема.
Вы можете сделать это через Powershell. Вот пример для Azures ARM (не классический, но вы можете легко конвертировать).
Select-AzureRmSubscription -SubscriptionName "subscription" $Name = 'storageaccountname' $resourcegroup = 'resourcegroup'
$sp = New-Object -TypeName Microsoft.WindowsAzure.Storage.Shared.Protocol.ServiceProperties
$sp.DefaultServiceVersion = "2017-04-17" $key = (Get-AzureRMStorageAccountKey -StorageAccountName $Name
-ResourceGroupName $resourcegroup).Value[1]
$context = New-AzureStorageContext -StorageAccountName $Name
-StorageAccountKey $key
$blobClient = $context.StorageAccount.Create