Задать вопрос
@AslanPAPA

Как правильно хранить видео в Django?

Есть клиент на C#, который должен брать фильмы из сервера и воспроизводить их. У меня есть api на Django, который получается метаданные фильма, но вот где мне хранить сами фильмы? На самом VPS или в папке проекта Django? И как фильм будет загружаться, сразу весь фильм будет передаваться или частично?
  • Вопрос задан
  • 408 просмотров
Подписаться 2 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Веб-разработчик Базовый
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Web-разработчик + ИИ
    8 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 3
Mike_Ro
@Mike_Ro
Python, JS, WordPress, SEO, Bots, Adversting
У меня есть api на Django, который получается метаданные фильма, но вот где мне хранить сами фильмы ?

- Фильмы храним не в самом django, для хранения можно использовать любой s3 вариант или отдельное vds+nginx хранилище.
- Django хранит данные фильмов, а при обращении к нему - выдает путь к нужному фильму из хранилища выше.
- (опционально) Django проверяет авторизован ли пользователь. Если все ок, то django генерит подписанную ссылку через s3 sdk, которая ведет напрямую к файлу из s3, со свежестью в пару часов. Спустя пару часов, ссылка протухнет и не может отдать видос любом левому типу.
И как фильм будут загружаться, сразу весь фильма будет передаваться или частично ?

- Менее настраиваемо (проще) - http range requests mp4.
- Более настраиваемо (сложнее) - hls live streaming.
Есть клиент на C#

есть api на Django

Может объединить технологии?
Ответ написан
opium
@opium
Просто люблю качественно работать
Храни на том же VPS, но вне папки проекта — например /var/media/films/. В Django прописываешь MEDIA_ROOT = '/var/media/films/', а nginx отдаёт напрямую через location /media/ { alias /var/media/films/; } — Django в отдаче самого видео вообще не нужен. Range requests nginx поддерживает нативно, C# клиент получает куски файла автоматически.
Ответ написан
nefone
@nefone
Junior PHP разработчик
Предварительно при сохранении видео нужно желательно настроить их кодирование с помощь FFMpeg используя, например очереди, сохраняя результат не в каталоге проекта: /var/movie/hls/{token_video}/, дальше настроить ендпоинт api в приложении которые по GET запросу с токеном:/api/video/<token_video>/будет отдавать видео: /var/movie/hls/{token_video}/main.m3u8

И в C# приложении использовать LibVLCSharp для воспроизведения полученного видео.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы