Скрыть видео и mp3 файлы - PullRequest
       6

Скрыть видео и mp3 файлы

0 голосов
/ 01 августа 2009

Я кодирую сайт, на котором есть видео и аудио файлы, мне нужны люди, чтобы иметь возможность смотреть / слушать файлы, если они вошли в систему через php / mysql, но я не хочу, чтобы люди, которые не зарегистрировались, были возможность загружать файлы, мне нужно иметь возможность блокировать прямой доступ к файлу и разрешать доступ к ним только пользователю с учетными записями.

Ответы [ 2 ]

1 голос
/ 01 августа 2009

Решением было бы не обслуживать эти файлы напрямую через Apache, но через PHP (поскольку из сценариев PHP вы знаете, зарегистрирован ли парень, пытающийся загрузить файл, .

Чтобы быть абсолютно уверенным, что никто не скачивает файлы напрямую, есть как минимум два решения:

Первый (я думаю, самый лучший) : если вы можете, поместите эти файлы вне корня вашего веб-сервера:

/.../www/               <-- this is your web root (DocumentRoot, with Apache)
/.../.../js/...
/.../.../css/...
/.../.../index.php
/.../.../download.php
/.../data/              <-- there, outside of the files served by Apache, you put your data
/.../data/my-music.mp3

Второй : Вы используете файл .htaccess в каталоге «data», чтобы запретить доступ кому-либо через Apache; что-то вроде этого может сделать:

Deny From All


Затем ваш скрипт download.php (или эквивалент) получит идентификатор файла, проверит права доступа пользователей и, если пользователь имеет доступ к запрошенному файлу:

  • отправьте правильный HTTP header с:
    • вы, вероятно, захотите хотя бы установить Content-Type
    • Может быть, некоторые другие, такие как Content-disposition, Content-length, ...
  • отправить содержимое файла
    • что-то вроде readfile может помочь ; -)

Конечно, вы должны защитить этот скрипт, теперь ; -)


Как примечание: главный недостаток в том, что PHP должен обрабатывать больше вещей ... может добавить нагрузку на ваш сервер : - (

0 голосов
/ 02 августа 2009

Я согласен со Скоттом. Вероятно, Flash - это путь, по которому у большинства людей установлен плагин Flash. Также есть Java, но мой опыт работы с Flash.

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

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

Flash имеет два варианта воспроизведения аудио и видео - прогрессивный и потоковый. В прогрессивном режиме Flash воспроизводит аудио / видео файл с URL-адреса (т. Е. http://www.example.com/video/video_1.flv). Flash загружает видео (так же, как браузер) и воспроизводит его. Загруженный файл сохраняется в кеше браузера. Это не не то, что вы хотите.

Потоковая передача осуществляется классами NetStream и NetConnection. Это настоящая потоковая передача файла, и она не сохраняется на жестком диске. Классы потоковой передачи используют не HTTP, а RTMP, поэтому вам потребуется флэш-аудио / видео сервер вместе с вашим веб-сервером.

Мне известны три флэш-видеосервера - собственный Flash Media Server от Adobe, Wowza и Red 5.

Сервер Adobe дорогой, возможно, слишком дорогой, если это некоммерческий сайт.

Я использую Wowza. Он бесплатен для 10 одновременных пользователей (чтобы вы не пошевелились), а также имеет неограниченный сервер соединений, хотя за 1000 долларов США это будет слишком дорого для некоммерческого сайта.

Третий - Red5. Это флеш медиа сервер с открытым исходным кодом, который абсолютно бесплатный. У меня нет опыта с этим, поэтому я не могу засвидетельствовать его особенности или стабильность.

Так что да, к сожалению, это больше, чем простой PHP и HTML. Вы можете либо создать свой собственный флеш-плеер (клиентский просмотрщик), либо использовать тот, который сделал кто-то другой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...