Xpoint
   [напомнить пароль]

Спроксировать передачу файла

Метки: [без меток]
2007-08-15 16:18:56 [обр] Tony746[досье]

Здравствуйте.

Есть ситуация: пользователь закачивает файл на сервер, этот файл будет перенаправлен на другой сервак через http. Можно ли этот файл не сохранять на первом сервере, а сразу перенаправить на второй ?

спустя 24 минуты [обр] Алексей Севрюков(162/1280)[досье]
Tony746[досье] в таком случае почему бы пользователю сразу не закачивать на нужный сервер?
спустя 7 минут [обр] Tony746[досье]
секурность
спустя 9 минут [обр] Алексей Севрюков(162/1280)[досье]
Tony746[досье] т.е. Вы хотите спрятать реальный хост, на котором они будут находится? А файлы только в одну сторону идут, Вы их потом со своего "секурного" хоста не отдаете в веб?
спустя 9 минут [обр] Алексей Севрюков(162/1280)[досье]

Можно использовать mod_proxy и сразу сохранять файл на другом серваке, например так:
.htaccess

RewriteEngine On
RewriteRule ^upload.php http://other.server.ru/upload.php [proxy,last]

В этом случае при запрос upload.php все запросы будут отсылаться на другой сервер. Можно так же добавить RewriteCond и перенаправлять только POST. На другом сервере скрипт upload.php сохраняет файл и отдает Location на первый сервер.

спустя 55 секунд [обр] Tony746[досье]

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

Аплоад файла можно перенаправлять через mod_rewrite, но от второго сервака приходит ответ и в этом случае он придёт не в php что есть не совсем хорошо

спустя 5 минут [обр] Алексей Севрюков(162/1280)[досье]
Tony746[досье] Отправляйте Location на той стороне.
спустя 24 минуты [обр] Tony746[досье]

хм, проблематично...

Решил попробовать отсылать файл через ajax на первом серваке перенаправить запрос через mod_rewrite, а ответ разобрать в браузере(в нём(ответе) всеравно содержиться только true или false).

спустя 1 час 9 минут [обр] Алексей Севрюков(162/1280)[досье]
Tony746[досье] не вижу никакой проблемы. AJAX же тут вообще не причем, это просто способ реализации. Объясните где Вы видите проблему?
спустя 4 минуты [обр] Давид Мзареулян(536/1003)[досье]

Как минимум, на PHP (см. название форума) эта задача не решается.

Аплоад файла можно перенаправлять через mod_rewrite, но от второго сервака приходит ответ и в этом случае он придёт не в php что есть не совсем хорошо

Опишите, пожалуйста, подробнее Вашу схему. Где должен сохраняться файл, где должны обрабатываться POST-данные, куда должен приходить ответ и т.д.

спустя 20 часов [обр] Tony746[досье]

проблема решилась как я и описал, все спасибо...

Есть сервер №1(apache, php) и сервер №2(базы и.т.д.)
Пользователь обращается к №1 который формирует запрос на получение данных с №2. Данные приходят(в виде xml) на №1 обрабатываются и отдаются пользователю. Вся инфа храниться на №2 т.е. когда пользователь сохраняет файл по идее он должен быть сначала загружен на №1 который передаст его дальше на №2. Проблема в том, что не хочется нагружать №1 если пользователь заливает файл в 300 мегов и ответ в виде xml должен кто то обработать.
Поэтому данные с пользовательской формы уходят через ajax на №1 там mod_rewrite видя что идёт бинарник проксирует запрос на №2. Соответственно ответ на эту операцию вернётся пользователю в браузер где его обработает js.

Powered by POEM™ Engine Copyright © 2002-2005