FTP LIST command

User avatar
katit
Уже с Приветом
Posts: 23960
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

FTP LIST command

Post by katit »

Делаю тут клиента к FTP серверу, но у меня зоопарк из серверов(не моих) и есть отличия. В принципе основная проблема в том как они обрабатывают команду LIST (MLST/NLST не предлагать, не все поддерживают и в .NET CLR клиенте нету)
Товарищи линуксоиды, кто подскажет почему так случается..

В принципе то что они возвращают похоже на ls -all из того что я вижу. Но есть такие кадры где возвращается путь вместе с именем файла:

-rw-rw-rw- 1 generic 235 Mar 22 11:21 fromRyder/RYD997ATХХ.20170322170721232.1962397386.txt
-rw-rw-rw- 1 generic 235 Mar 22 12:21 fromRyder/204-MGOHL-ATХХ-CANCEL-7725547360.edi

А у меня парсер всю заднюю часть как за имя файла читает, потом соответственно оно не работает когда я хочу файл скачать(т.к. там путь указан).
Т.е. меня чего интересует. Почему оно так? Я могу конечно убрать путь из строки, но мне интересно как я могу попасть с каким то еще хитрым сервером.
Лучше водки — хуже нет! ©
helg
Уже с Приветом
Posts: 4827
Joined: 15 May 2001 09:01

Re: FTP LIST command

Post by helg »

Читаем RFC 959
LIST (LIST)

This command causes a list to be sent from the server to the
passive DTP. [..]
Since the information on a file may vary widely from system
to system, this information may be hard to use automatically
in a program, but may be quite useful to a human user.
То есть всё зависит от сервера, коих воз и маленькая тележка, и цепляться к формату вывода можно разве что угадывая формат для каждого сервера.

Я бы забыл про FTP и сделал всё на SSH/SFTP. Кроме стандарта вывода ls/ls -l, нет разнобоя BIN/TEXT, нет проблем с портами - не надо возиться с PASV, есть возможность заходить по ключу, да библиотеки для компутерного клиента у него сильно лучше.
User avatar
katit
Уже с Приветом
Posts: 23960
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

Re: FTP LIST command

Post by katit »

helg wrote: 22 Mar 2017 22:59 Читаем RFC 959
LIST (LIST)

This command causes a list to be sent from the server to the
passive DTP. [..]
Since the information on a file may vary widely from system
to system, this information may be hard to use automatically
in a program, but may be quite useful to a human user.
То есть всё зависит от сервера, коих воз и маленькая тележка, и цепляться к формату вывода можно разве что угадывая формат для каждого сервера.

Я бы забыл про FTP и сделал всё на SSH/SFTP. Кроме стандарта вывода ls/ls -l, нет разнобоя BIN/TEXT, нет проблем с портами - не надо возиться с PASV, есть возможность заходить по ключу, да библиотеки для компутерного клиента у него сильно лучше.
Понятно все, сервера не мои, мы интегрируемся и ничего не поделать. Как и говорю, есть способ сконфигурировать подсоединение и к каждому клиенту добавлять regex чтоб парсить его выхлоп :) Но хотелось бы покрыть максимум.
Вот конкретно меня интересует что за сервер пишет пути таким образом (с файлами) и в чем прикол/логика? Тут больше вопрос к тому кто именно имеет опыт с большим зоопарком разных типов FTP серверов.
Лучше водки — хуже нет! ©
helg
Уже с Приветом
Posts: 4827
Joined: 15 May 2001 09:01

Re: FTP LIST command

Post by helg »

Раз это продукт для рынка, и он зависим от формата нестандартизированного вывода команды LIST, я бы написал: с какими именно FTP серверами он совместим "из коробки" - ну и слова про возможность скрещивания с другими серверами.
Palych
Уже с Приветом
Posts: 13975
Joined: 16 Jan 2001 10:01

Re: FTP LIST command

Post by Palych »

А разве file.txt и dir/file.txt не разные вещи?
User avatar
katit
Уже с Приветом
Posts: 23960
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

Re: FTP LIST command

Post by katit »

Разные, но почему она их кажет? На самом то деле я УЖЕ делаю CWD и нахожусь в папке. В Линуксе же показывает только файлы и папки в current directory. И здесь также, но зачем-то добавляет папку спереди.
Лучше водки — хуже нет! ©
Palych
Уже с Приветом
Posts: 13975
Joined: 16 Jan 2001 10:01

Re: FTP LIST command

Post by Palych »

katit wrote: 23 Mar 2017 03:26 На самом то деле я УЖЕ делаю CWD и нахожусь в папке.
А может тогда не делать этого, а всегда обращаться к файлам по полному имени?
User avatar
katit
Уже с Приветом
Posts: 23960
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

Re: FTP LIST command

Post by katit »

Palych wrote: 23 Mar 2017 04:56
katit wrote: 23 Mar 2017 03:26 На самом то деле я УЖЕ делаю CWD и нахожусь в папке.
А может тогда не делать этого, а всегда обращаться к файлам по полному имени?
Так 80% серверов работают нормально
Лучше водки — хуже нет! ©
Palych
Уже с Приветом
Posts: 13975
Joined: 16 Jan 2001 10:01

Re: FTP LIST command

Post by Palych »

katit wrote: 23 Mar 2017 05:02
Palych wrote: 23 Mar 2017 04:56
katit wrote: 23 Mar 2017 03:26 На самом то деле я УЖЕ делаю CWD и нахожусь в папке.
А может тогда не делать этого, а всегда обращаться к файлам по полному имени?
Так 80% серверов работают нормально
Идея в том что list из домашней директории должен отображаться более предсказуемо.
Хотя конечно от MS всего можно ожидать...
User avatar
katit
Уже с Приветом
Posts: 23960
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

Re: FTP LIST command

Post by katit »

Там не МС, там скорее Юникс/МФ
Лучше водки — хуже нет! ©
Palych
Уже с Приветом
Posts: 13975
Joined: 16 Jan 2001 10:01

Re: FTP LIST command

Post by Palych »

МС адназначна! :)

Return to “Вопросы и новости IT”