Сергей Ш.
293 сообщения
#13 лет назад
Здравствуйте, с php сталкиваюсь редко, сейчас возникла необходимость перекачивать файлы с сервера А на сервер Б, через сервер Ц .
На входе имеем ссылку на файл А, и адрес php скрипта сервера Б(отправляется post). Так как файлов много, ждать сначала полной загрузки с А на Ц, а потом передачу с Ц на Б долго. Интересуют методы, как можно делать эти операции синхронно, чтоб файл буферизировался.
Желательно чтоб способ был простой и эффективный.
Андрей Халецкий
3562 сообщения
#13 лет назад
Стоит подумать, а не лучше ли гвозди забивать молотком, а не микроскопом.

Чем обусловлен выбор PHP для решения этой задачи, что за файлы, сколько их, какие досутпы есть до 3-х серверов?
Евгений О.
2989 сообщений
#13 лет назад
Вообще-то можно просто передать с сервера Ц на сервер Б сформированную переменную $_FILES, без закачки файла на сервер А, и качать уже сразу на Б.
Сергей Ш.
293 сообщения
#13 лет назад
Файлы по 5-10 мегабайт, количество около 100 000
доступ к серверу Б, есть только отправкой постом через скрипт. От А только возвращаемая на запрос ссылка(фтп нет)
выбор php обусловлен своей распространённостью, потому что серверов нужно будет для такой задачи несколько. На Б и А широкий канал, поэтому Ц-шки со слабым берутся количеством(хотя это спорный вопрос , достойны отдельной темы)
Сергей Ш.
293 сообщения
#13 лет назад
Elosoft, так к сожалению не получиться, нужно проксировать через себя.
Андрей Халецкий
3562 сообщения
#13 лет назад
Микроскоп так микроскоп.
Но перелить к себе все равно прийдется т.к. постом можно засылать только полностью файл для этого нужно иметь его "под рукой".
Для ускорения - сливать и заливать многопоточно, после заливки - удалять.
Сергей Ш.
293 сообщения
#13 лет назад
А что в данном случае может послужить молотком?
Андрей Халецкий
3562 сообщения
#13 лет назад
Лучше всего ССШ до обоих серверов.
чуть хуже ССШ до целевого (куда заливать)
еще хуже залить свой скрипт на целевой сервер
прокачивать через третий - самый худший вариант
Сергей Ш.
293 сообщения
#13 лет назад
Спасибо, буду пробовать.