@zoupps

Как хранить большие видео на сервере?

Добрый день!
Есть задача: хранить большие видео (час-полтора) на сервере и отдавать их по Rest Api на клиент. Все собираюсь реализовывать на node.js.
Вопрос: как лучше это сделать?
Пока у меня только такая идея: сделать директорию на серваке под статичные файлы (допустим static), в нее поместить папку videos. В бд, в таблице с видео сделать столбик video_url в котором будут лежать значения по типу "/static/videos/video.mp4", и отдавать их на фронт по Rest Api. Нормальная идея или я нет?

P.S.
Не имею опыта в написании подобного, поэтому заранее извиняюсь если вопрос глуп. Благодарю за ответы)
  • Вопрос задан
  • 569 просмотров
Решения вопроса 2
@rPman
Файлы! С доступом как статика на веб сервере, при необходимости права разруливать через basic auth (само собой https обязателен), добавляя пароли в url. При БОЛЬШОМ количестве файлов и сложной структуры по их управлению, заводи в базе данных прослойку а имена файлов пусть будут завязаны на идентификаторы из этой базы (или как некоторые делают - хеши от содержимого, как бонус дубликаты отлавливать)

Этот подход самый простой для реализации и самый эффективный по затратам ресурсов сервера. Все остальные будут либо требовать больше процессора и больше времен на кодинг
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
Проще всего хранить как файлы.
И да, можете хранить список этих файлов и метаданные в БД, для скорости и удобства.

Если способ попроще не устраивает, то есть множество софта умеющего раздавать видео. От плагина к nginx до навороченных решений заточенных под большую нагрузку.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Нужен веб-сервер, который умеет в большие видео-файлы: отдавать не просто весь файл целиком, а находить в нём запрошенное время начала, и выдавать по небольшим кусочкам. См. DASH (на англ.)

Чтобы играть видео можно было с любого места, не скачивая часовое видео полностью.

Подробнее на примере NGINX (на англ.)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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