Лучший способ загрузки медиафайлов и управления ими с помощью Azure Media Services ad Asp.Net Сердечник

#asp.net-core #azure-blob-storage #azure-media-services

Вопрос:

Я очень новичок в Azure и медиа-сервисах Azure, поэтому у меня много вопросов о загрузке, хранении и управлении мультимедиа. Таков сценарий:

Я создаю API с помощью Asp.Net Ядро, которое позволяет пользователям загружать видео, аудио и изображения. Таким образом, пользователь может просмотреть список видео, изображений и аудио, загруженных с помощью миниатюры. Сейчас я просто работаю над загрузкой видео. Когда видео загружается, я создаю миниатюру, которая хранится в контейнере, связанном с активами ( используя пользовательский вывод преобразования ). Я следую официальной документации: https://docs.microsoft.com/it-it/azure/media-services/latest/stream-files-tutorial-with-api .

Таким образом, каждый раз, когда пользователь загружает видео, создаются Ресурсы и Контейнер. В контейнере есть миниатюра, и контейнер является частным, поэтому вы не можете получить доступ к файлам без ключа SAS. И вот в чем у меня есть некоторые сомнения:

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

Может быть, лучшим решением является разделение эскизов в другой общедоступный контейнер?

Моя первоначальная идея состояла в том, чтобы создать для каждого пользователя 4 контейнера:

  • пользователь_x_videocontainer ( частный )
  • пользователь_x_audiocontainer ( частный )
  • пользователь_x_thumbnailscontainer ( общедоступный )
  • пользователь_x_imagescontainer ( общедоступный )

Поэтому, когда пользователь загружает видео, я могу сохранить видео в User_X_VideoContainer, а миниатюруUser_X_ThumnailsContainer и использовать другой уровень доступа к одному контейнеру. Но я не знаю, является ли это хорошей практикой, потому что службы мультимедиа Azure сначала создают ресурсы, а затем Контейнер со всем, что находится внутри. Итак, witch-лучший способ хранения и управления файлами пользователей, у которых был доступ другого типа?

Спасибо!

Ответ №1:

Я бы рекомендовал хранить общедоступные данные в другой учетной записи хранения для повышения безопасности (и использовать Azure CDN для кэширования содержимого). Эта учетная запись хранения может быть присоединена к вашей учетной записи AMS, чтобы вы могли указать эту учетную запись хранения в качестве места назначения для вывода миниатюр в задании на основе преобразования AMS. Документация для вывода миниатюр.

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

1. Хорошо, спасибо. Но есть ли способ сохранить миниатюру в пользовательском контейнере? Теперь, используя этот пример ( docs.microsoft.com/en-us/azure/media-services/latest/… ) миниатюра сохраняется в контейнере, подключенном к Ресурсам. Но этот контейнер является частным и содержит видеофайл. Итак, могу ли я сохранить миниатюру в пользовательском контейнере?

2. Я думаю, что это единственный способ скопировать большой двоичный объект в другой контейнер: docs.microsoft.com/it-it/azure/storage/blobs/…