Попробуйте использовать сервис Amazon S3, у него есть свои причуды, но это имеет смысл, как только вы ознакомитесь с ним.
В их API есть хуки для достижения временных URL-адресов, которые активны в течение указанного времени, поэтому вы можете свободно показывать URL-адрес посетителю, потому что он не будет работать через 10 минут или около того.
Это почти тривиальная вещь с php (около 15 строк кода), на их форумах есть множество примеров, так что вам не нужно идти с нуля и читать полную документацию о том, как этого добиться.
Какую авторизацию вы будете делать перед тем, как создавать и показывать ссылки, решать только вам.
Вы также можете сделать так, чтобы он обслуживался с вашего домена, например video.yourdomain.com, вместо стандартных URL-адресов s3.
И последнее, это дешево - мы заплатили около 2 долларов США за месяц тестирования и развертывания, когда я загрузил 8 ГБ, загрузил его полностью 3 раза и инициализировал загрузку около 100 раз. Человек, для которого я делал это, настолько доволен ценой, что хочет переместить все свои загружаемые носители на s3.
Теперь, перечитывая все, что я написал, это выглядит как реклама / спам, но я так доволен обслуживанием, потому что раньше я закодировал все для аудиофайлов, и потребовались дни, пока все работало просто отлично, и это заняло пару часов для реализации (в основном знакомство с сервисом).