Необходимо создать php скрипт для отдачи файлов с удаленного сервера клиенту через сервер посредник. Более подробно алгоритм должен быть такой.
1. Имеем удаленный (http) сервер-хранилище и (http) сервер-посредник. 2. Менять что-либо на сервере-хранилище нельзя. 3. На удаленном сервере-хранилище происходит хранение файлов. 4. Сервер-посредник имеет минимальный объем дискового пространства. 5. В тот момент когда клиент начинает скачивать файл с сервера-посредника, сервер-посредник скачивает частями файл(ы) (место на сервере ограничено) и сразу же передает их клиенту. 6. Файл(ы) на сервере-посреднике не хранятся, сохраняется только небольшие их части при передаче клиенту. 7. Клиент скачивает файл по ссылке сервер-посредник.ru/файл с возможностью докачки.
Примерно такой нужен скрипт.
Опубликован 20.02.2011 в 09:35 по мск
Прошло времени с момента публикации: более 14 лет
Не изобретайте велосипед.
Стоит ли создавать инструмент уже для нас созданный? К примеру mod_rewrite для Apache, если сервер-хранилище чужой, или банальный NFS для собственных серверов.
Если есть обоснования против использования стандартных средств, тогда ещё могу рассмотреть задачу, но по моему mod_rewrite предостаточен.
На сколько мне позволяет судить моя осведомленность при помощи mod_rewrite подменяются реальные пути на те, которые нам бы хотелось видеть. Точнее он заменяет ссылки одного типа на другие. Здесь же нужно совсем другое. p.s. может что я пишу понятно только мне?......
Предположим, что хранилище не доступно напрямую конечному клиенту. Тогда rewrite не сработает. Однако проксирование всё ещё отвечает твоим требованиям. Поищи статьи по запросу "проксирование nginx". nginx хорошо заточен на это дело, так что будет тебе полезен. Можно тот же функционал поднять и на Apache. Ищи статьи по ключевой фразе "Apache проксирование proxy-акселератор". Но nginx настраивается проще, так что на твой выбор.
Так или иначе, новый "велосипед" тебе пока не нужен.
Сервер-посредник находится на платном хостинге. И насколько я понимаю, у меня нет прав по изменению настроек nginx. Хотя, возможно, мне не хватает знаний.....
"Сервер-посредник находится на платном хостинге." Ключевой момент, не указанный в техническом задании. Ты видимо хочешь сказать не "сервер", а сайт, и ты не можешь управлять какими либо службами запущенными на этом сервере. Может стоит обратиться к администраторам того сервера, на котором лежит твой сайт посредник? Возможно они за определенную плату настроят проксирование.
Так или иначе для работы данного скрипта могут понадобиться дополнительные модули (библиотеки). Если ты не можешь рулить сервером, то не сможешь доставить необходимые модули, и скрипт откажется работать. Можно попытаться сделать модуленезависимую сборку, включив все необходимые функции из библиотек в свою прогу. Только она вырасетет в размерах. Даже не знаю, кто этим займется. Я могу попробовать написать такое на Perl. Если уж совсем никого не найдешь для выполнения работы, пиши в личку.
Смотри: forum.dklab.ru/viewtopic.php?t... Прямо таки для тебя постарался. То, что ты и просил. Web proxy на PHP. Немного пошаманить и будет работать как надо.