Сама задача:
Идиотский тупой файл-сервер, настолько тупой, что нет доступа по http, есть доступ только по ftp, но невозможно изменить права доступа. На сервере лежат файлы, которые нужно отдать посетителю сайта, но отдать так, чтобы не светить пароль к ФТП.
На сайте есть место для временного хранения файлов, но весь объем, лежащий на файл-сервере, на сайт не перелить: слишком велик.
Мысли у меня такие: по запросу пользователя, пхп скопирует на сайт требуемый файл, и затем отдаст его на скачивание, а после окончания скачивания или после отмены скачивания посетителем, или при обрыве соединения - файл будет удален.
Но так и не нашел, как отловить события user_abort или другие варианты ухода со страницы...
Спустя 1 час, 20 минут, 29 секунд (29.10.2009 - 20:23) kirik написал(а):
Вот такая функци есть connection_aborted(). А по-другому.. наверное можно заюзать эту штуку, потом смотреть какие соединения были открыты.
А файл-сервер находится в локальной сети веб-сервера? Просто может лучше сделать что-то типа прокси, тоесть веб-сервер будет выступать как прокси между файл-сервером и юзером - мы не будем качать-файл-на-веб-сервер--сохранять-файл--отдавать-файл, а сразу отдавать (конечно он будет сначала качаться, но нас это уже не волнует), и потом его не нужно будет удалять. Например через fopen открываем соединение с файл-сервером, а потом через readfile отдаем.
А файл-сервер находится в локальной сети веб-сервера? Просто может лучше сделать что-то типа прокси, тоесть веб-сервер будет выступать как прокси между файл-сервером и юзером - мы не будем качать-файл-на-веб-сервер--сохранять-файл--отдавать-файл, а сразу отдавать (конечно он будет сначала качаться, но нас это уже не волнует), и потом его не нужно будет удалять. Например через fopen открываем соединение с файл-сервером, а потом через readfile отдаем.
Спустя 7 минут, 40 секунд (29.10.2009 - 20:31) glock18 написал(а):
в пыхе можно писать свои врапперы и фильтры на создаваемые потоки поверх стандартных пыховых.
у фильтров можно задать метод onClose. stream_register_filter регистрирует класс фильтра. наследовать свой класс надо у класса php_user_filter.
у фильтров можно задать метод onClose. stream_register_filter регистрирует класс фильтра. наследовать свой класс надо у класса php_user_filter.
Спустя 2 часа, 40 минут, 31 секунда (29.10.2009 - 23:11) FatCat написал(а):
Цитата (kirik @ 29.10.2009 - 21:23) |
Например через fopen открываем соединение с файл-сервером, а потом через readfile отдаем. |
Да, думал над этим.
Но файлы довольно большие, по 50+ Мб, а на сайте под пхп выделяется всего 24 Мб, и очень бы не хотелось превышать этот лимит...
Цитата (kirik @ 29.10.2009 - 21:23) |
А файл-сервер находится в локальной сети веб-сервера? |
Увы, нет.
Цитата (glock18 @ 29.10.2009 - 21:31) |
в пыхе можно писать свои врапперы и фильтры на создаваемые потоки поверх стандартных пыховых. |
Никогда с таким не сталкивался. Спасибо, почитаю.
_____________
Бесплатному сыру в дырки не заглядывают...