Как предотвратить прямую загрузку медиа файла из источника? - PullRequest
0 голосов
/ 05 июля 2019

Я разрабатываю сервис потокового видео как мой личный проект.

Видеофайлы хранятся в корзине AWS S3 (я использую медиаконвертер), веб-приложение было построено на реагировать на next.js, а серверная часть была построена на экспрессе.Паспорт используется для аутентификации пользователя, вошедшего в систему и вышедшего из нее.

И я использую Plyr для воспроизведения видеоисточников.

Видеофайлы, которые использовались в качестве источников для Plyr, имеют прямую ссылку с S3.Напримерссылка на файл (но пользователь должен иметь возможность просматривать видео через мой сервис) или скрыть местоположение исходного файла.

Есть ли у вас какие-либо полезные советы? Спасибо.:)

Ответы [ 2 ]

1 голос
/ 07 июля 2019

Один из вариантов - вернуть пользователю подписанный URL вместо прямой ссылки на фактический объект S3.Это позволяет вам установить срок действия истечения для URL, то есть, если пользователь скопирует ссылку, она станет непригодной для использования по истечении указанного вами времени.Вы можете создать подписанный URL-адрес, используя функцию getSignedUr () пакета AWS JavaScript SDK (или используя аналогичную функцию в одном из других пакетов AWS SDK).Кроме того, вы можете использовать подписанные URL-адреса вместе с CloudFront.Дополнительную информацию о подписанных URL-адресах в целом и об использовании CloudFront в частности можно найти в Руководстве разработчика CloudFront .

0 голосов
/ 05 июля 2019

В идеале вы хотите использовать потоковую передачу HLS с Cloudfront. Вот учебник о том, как это сделать в AWS. Это не сделает копирование вашего контента абсолютно невозможным, но сделает его намного сложнее.

Однако в вашем случае Plyr может быть самым слабым звеном. Из того, что я понял, читая спецификации, это более или менее обертка вокруг видеоплеера HTML5, которая может иметь проблемы при воспроизведении этих файлов. Если есть возможность перейти на другого игрока - посмотрите на ссылку выше и подумайте об использовании потоковой передачи CloudFront.

...