|
Модераторы: korob2001, ginnie |
|
dimon2239 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 20.10.2015 Репутация: нет Всего: нет |
Добрый день. Подскажите пожалуйста, почему не срабатывает put, идет ошибка "Unrecognized or unsupported command".
|
|||
|
||||
arto |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
Добавте в new Debug => 9
|
|||
|
||||
a0730 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 0 Регистрация: 1.6.2008 Репутация: нет Всего: нет |
Попробуй добавить строку:
Перед $ftp->put($file) or die "Can't put $file into $dir\n $!", $ftp->message; Этот ответ добавлен с нового Винграда - http://vingrad.com |
|||
|
||||
dimon2239 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 20.10.2015 Репутация: нет Всего: нет |
Строку добавил, результат не изменился. Ниже дебаг.
Этот ответ добавлен с нового Винграда - http://vingrad.com Это сообщение отредактировал(а) dimon2239 - 21.10.2015, 07:17 |
|||
|
||||
a0730 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 0 Регистрация: 1.6.2008 Репутация: нет Всего: нет |
FTP клиент использует команду ALLO для резервирования места.
Похоже на ошибку в Net::FTP. Есть ли возможность использовать другой клиент или сервер? Этот ответ добавлен с нового Винграда - http://vingrad.com |
|||
|
||||
tzirechnoy |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: нет Всего: 16 |
Учитывая, что в первом RFC, в котором появилась команда STOR (rfc354), объявлена и команда ALLO, и чётко указано: <<The ALLO command should be treated as a NO-OP (no operation) by thuse servers which do not require that the maximum size of the file be declared beforehand.>>, а такжэ тот факт, что никому в Net::FTP это много лет не мешает -- это баг в ftp-сервере, а не в Net::FTP.
Впрочем, можно самому перед put сделать allo(0). Оно вернёт ошыбку, которую можно проигнорировать. |
|||
|
||||
dimon2239 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 20.10.2015 Репутация: нет Всего: нет |
Я правильно понимаю, так должно быть?
Выполнил
|
||||
|
|||||
a0730 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 0 Регистрация: 1.6.2008 Репутация: нет Всего: нет |
Perl FTP клиент использует команду ALLO.
Проблема в том, что FTP сервер её не подерживает и возвращает ошибку, которая обламывает операцию PUT. Т.е. клиент и сервер не совместимы. Поэтому я и спрашивал выше, есть ли возможно заменить клиента (другой не PERL) или сервер (другой хост или другой софт). Этот ответ добавлен с нового Винграда - http://vingrad.com |
|||
|
||||
dimon2239 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 20.10.2015 Репутация: нет Всего: нет |
Сервер никак изменить нельзя, т.к. он встроенный в dslam). Только если менять клиент, попробую реализовать на vbs. Жаль что с перлом так получилось.
|
|||
|
||||
tzirechnoy |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: нет Всего: 16 |
Я тут подумал, да с alloc(0) не прокатит. Попробуйте сделать вместо этого ${*$ftp}{'net_ftp_allo'} = 1; перед (каждым) ->put |
|||
|
||||
a0730 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 0 Регистрация: 1.6.2008 Репутация: нет Всего: нет |
Задачу какую хотите решить?
Понятно, что нужно передать файл на сервер, клиент вроде бы винда. Какая степень автоматизации нужна? Как нужно запускать передачу файла? В C# есть встроенный FTP клиент. С ним мне тоже пришлось камлать когда-то, но может он подойдёт. Можно просто нарисовать два файла s.cmd и s.data: [code=C#] файл s.data: open 10.1.27.1 user password bin put IMG_0061.MOV bye файл s.cmd: @echo off ftp < s.data pause [/code] И запустить s.cmd из командной строки. Этот ответ добавлен с нового Винграда - http://vingrad.com |
|||
|
||||
dimon2239 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 20.10.2015 Репутация: нет Всего: нет |
Спасибо большое, так все работает. Верно ли понимаю что этой командой мы отключили отправку allo? p.s. Скрипт на обновление dslam zyxel. |
||||
|
|||||
tzirechnoy |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: нет Всего: 16 |
Это командой вы сделали вид, что команда ALLO для следующего STOR успешно сработала и посылать её в этот раз ужэ не нужно. Срабатывает только на один STOR, поскольку ALLO как раз на один STOR и рассчитана, и этот счётчик в STOR сбрасывается. |
|||
|
||||
tzirechnoy |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: нет Всего: 16 |
Кстати, если dslam зарегистрирован у производителя, или вообще есть какие-то контакты техподдержки -- то можно попросить чтобы баг с ALLO исправили.
|
|||
|
||||
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |