Всем привет!
Необходимо загружать на сервер большие файлы. Например фильмы. Грамотно ли будет просто увеличить в конфигах максимальный размер загружаемого файла? Или существуют принципиально другие способы загрузки?
Но самое главное как потом фильмы отдавать клиенту с проверкой прав. То есть может пользователь скачать файл или нет. С маленькими все понятно, просто отдавать их прямо из PHP с комплектом заголовков и функцией readfile(); Опять же, как быть с большими? Наверное неочень хорошо, если через php прогонять по 700-800 мб.
Какие есть идеи?
Спасибо
vagrand
8.09.2015 - 08:27
Цитата |
Грамотно ли будет просто увеличить в конфигах максимальный размер загружаемого файла? |
Увеличить размер все равно придется, но так же нужно будет добавить аплоадер, с прогресс баром, например
http://www.uploadify.com/Цитата |
С маленькими все понятно, просто отдавать их прямо из PHP с комплектом заголовков и функцией readfile(); |
Большие файлы можете отдавать таким же способом, потому как:
Цитата |
readfile() сама по себе не приводит к каким-либо проблемам с памятью, даже при отправке больших файлов. При возникновении ошибки превышения памяти убедитесь, что буферизация вывода отключена с помощью ob_get_level(). |
Почитайте:
http://php.net/manual/ru/function.readfile.phpПравда в случае с видео файлами и их онлайн стриммингом через такой скрипт, их нельзя будет перекрутить.
_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
vagrand, спасибо за ответ. То есть резюмируя, вы считаете, что классическая схема с некоторыми исправлениями конфигов вполне подойдет.
Нет, стримов не предполагается. Задача засекьюрить файлы, чтобы нельзя было делиться ссылками - один чел покупет, а еще 100 пользуются бесплатно.
Цитата (vagrand @ 8.09.2015 - 08:27) |
но так же нужно будет добавить аплоадер, с прогресс баром |
Ну это уже мелочи. Главное стратегия.
vagrand
8.09.2015 - 09:48
Цитата |
То есть резюмируя, вы считаете, что классическая схема с некоторыми исправлениями конфигов вполне подойдет. |
Тут еще нужно учесть возможное количество данных файлов и количество параллельных загрузок. Если вы планируете писать какой-то большой сервис, то тут нужно подумать еще о том как распараллелить все это дело на несколько серверов, а возможно даже стоит задуматься о использовании какого-то CDN
_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.