ftp download проблемы

GribNick

Новичок
ftp download проблемы

Всем здрасте
суть явления следующая

есть ресурс "шаринга файлов"
который для скачивания файла генерирует ссылку на свой фтп сервер
вида

ftp://flogin:[email protected][/email]/eee/sss/file.exe

ВАЖНО! - пароль логин экспайрится через какое то время (ориентировочно 3-4 мин)


собственно задача скачать этот файл по фтп и сохранить его на моем сайте

переписываю на свой лад пример из PHP хелпа

$login = 'flogin';
$pass = 'fpass';
$server_file = '/eee/sss/file.exe';
$ftp_server = 'server.com';

// define some variables
$local_file = 'file.exe';


// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $login, $pass);

// try to download $server_file and save to $local_file
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
echo "Successfully written to $local_file\n";
} else {
echo "There was a problem\n";
}

// close the connection
ftp_close($conn_id);



закидываю скрипт на сервер
запускаю через броузер

все ок
файл пошел качаться и сохраняться в том же каталоге что и скрипт.

НО!!! через какое то время в броузере рисуется ошибка

502 Bad Gateway
nginx/0.1.24
и download соответственно помирает
рефреш ничего не дает - та же ошибка сразу

если подождать какое то время и сделать рефреш то уже идет ошибка выдаваемая скриптом - "There was a problem"
видимо из за того что заэкспайрился пароль на сервере скачивания.

собственно вопрос - в чем причины ошибки 502 Bad Gateway?

как можно обойти?

мне так кажется ошибка возникает в тот момент когда на сервере "шаринга" експайрится пароль, такое возможно?
ведь вроде если я уже "качаю" то мне побоку заэкспарился пароль или нет


По крайней мере если тупо качать линк эксплорером или регетом - то никаких проблем.
 

GribNick

Новичок
добавил после создания коннекшена

$login_result = ftp_login($conn_id, $login, $pass);
ftp_pasv($conn_id, true);

а так же
ftp_set_option($conn_id, FTP_TIMEOUT_SEC, 1000);



результат тот же
отваливаемся через какое то время по 502 Bad Gateway
nginx/0.1.24
кстати к тому времени как идет обрыв - пароль на сервере "шаринга" еще живой - это точно
похоже что какой то таймаут или что то в этом роде.
 

SiMM

Новичок
> НО!!! через какое то время в броузере рисуется ошибка 502 Bad Gateway
И при чём тут ftp?
 

GribNick

Новичок
может и не причем
а что тогда причем?
в том то и прошу совета
 

Necromant

Новичок
отваливается, случайно не чер 30 секунд ???
запусти свой скрипт в консоли, выставив set_time_limit(0);
 

GribNick

Новичок
короче проверил пару раз
отваливается стабильно через 2 минуты после старта скрипта

set_time_limit(0) - не повлияло никак
 

GribNick

Новичок
Necromant

я извиняюсь, из консоли - из командной строки на сервере?
дык доступа у меня нет туда.
а локально тоже не получится
 

Necromant

Новичок
exec('/usr/local/bin/php -f ftp_donwload.php >d.log 2>d2.log &');
после чего смотрилоги d.log / d2.log
 

GribNick

Новичок
Necromant

спасибо большое, сегодня попробую обязательно
просто это не основная работа а так, хобби :)

-~{}~ 18.10.05 11:05:

Necromant
ты был прав!
на хостинге max_execution_time = 120 - как раз 2 минуты после которых и отваливаемся
по логу
set_time_limit() has been disabled for security reasons
хотя safe_mode = off



всплывает вопрос - какими путями это можно обойти?
можно ли скачать в "фоновом" режиме?
или выход только пробывать по частям скачать?
если по частям - киньте ссылку как это делать
я что то по документации php не понял откуда брать resumepos
для ftp_get
 

Necromant

Новичок
можно ли скачать в "фоновом" режиме?
поставить php как cgi и делать , что хочешь

если по частям - киньте ссылку как это делать
я что то по документации php не понял откуда брать resumepos
для ftp_get
http://php.paco.net/manual/ru/function.ftp-nlist.php , узнать размер файла в байтах и вперед
 
Сверху