Как удалять файлы с сервера по условию, что они не используются в текущий момент?
Здравствуйте!
Такая ситуация - есть сайт event-агентства, на котором можно смотреть видео с различных мероприятий.
Агентство довольно крупное, монополист в своем городе и видео копятся очень быстро. Сейчас они решили размещать все видео на своем Яндекс.Диске, на хостинге 50Гб не хватает, больше покупать не хотят.
Файлы на диске хранятся в архивах.
Недавно я написал такой простой функционал: при открытии страницы какого-то события, PHP-скрипт проверят есть ли файлы события в специальной папке на сервере, если нет, то с помощью API Яндекс.Диска скачивается и распаковывается архив на сервере, формируется плейлист из видео данного события и юзер может их смотреть. Если файлы есть, то просто формируется плейлист.
В среднем видео одного события весят по 1.5-2Гб, не меньше. Т.е. если одновременно заходят посмотреть порядка 20 человек, то место заканчивается.
Я написал еще один скрипт и добавил его в cron, который запускается раз в сутки и удаляет файлы старше 12 часов. Решение так себе.
Подскажите пожалуйста как можно улучшить этот момент. Чтобы, условно, если страница события была закрыта и на ней нет больше активных юзеров, то удалять скачанные файлы. Думал ковырять в сторону WebSocket, но пока не было опыта с данной технологией.
TheAndrey7, в том то и дело, что на диске все в архивах, из архива нельзя просмотреть прям на диске, поэтому и приходится закачивать их на сервер. Я не против поработать с WS, просто опыта нет
TheAndrey7, ну так они решили тоже...мол у одного события может быть по 10-15 видео и грузить все по одиночке им видите ли лень, поэтому грузят архивом. мде
Классическое "кроилово ведет к попадалову".
Что характерно, им даже не нужен какой-то серьезный хостинг или облака - сервер с хранилищем можно поставить буквально у местного провайдера. Или даже у себя же в офисе, купив белый айпишник и обеспечив нормальный канал. Тянуться-то до него будут только местные же.
Adamos, да, сам персонал, точнее менеджеры, с которыми я напрямую контактирую - адекватные люди и понимают, что руководство сами себе палки в колеса ставят. Как я понял там дико завышенное ЧСВ, мол "опытные бизнесмены и сами знаем сколько на что выделять".
В среднем видео одного события весят по 1.5-2Гб, не меньше. Т.е. если одновременно заходят посмотреть порядка 20 человек, то место заканчивается.
Причем тут место? Если 1.5-2G, то видео занимает 1.5-2G — почему место заканичвается? :)
залейте в Yandex.Cloud Object Storage и через CDN отдавайте, точнее CDN сам будет отдавать, там сам на лету транскодинг (стрим делать под скорость интернета) будет делать... Оплата будет только за просомтренный ресурс.
Сервис полностью совместим с AWS S3, так что с библиотеками вообще никаких проблем — все есть и все стабильное
Так себе решение, но нарегать пачку ящиков, каждый со своим облаком, пусть на 5Гб. Видео для каждого события заливать в свое облако... Ну это так, как вариант для бедных.
Или почта для домена. Хотя я хз там пространство общее или каждому что-то да выделяют.