Как мне обработать команду LIST на моем FTP-сервере? - PullRequest
0 голосов
/ 27 мая 2011

Я пишу FTP-сервер с Java, и теперь я хочу ответить на команду LIST. Достаточно отправить только имена файлов, и мне не нужно отправлять размер файла, владельца, разрешения и т. Д. Кажется, чтопросто отправка некоторых строк в качестве имен файлов не удовлетворяет клиента (я пробовал как ASCII, так и двоичные форматы).Как я могу узнать, что ожидает клиент FTP в ответе?

Я тестирую свой сервер, используя FireFTP и FileZilla

Ответы [ 2 ]

2 голосов
/ 27 мая 2011

Если вы хотите создать совместимый FTP-сервер, вам нужно обработать LIST и NLST (стандартные команды), а также команды расширения MLST и MLSD.

Формат команды LIST нигде не определен, и в мире встречается около 400 форматов. Использование формата Unix ls или Windows DIR будет работать с большинством клиентов, поскольку эти форматы достаточно широко распространены и хорошо поддерживаются клиентами.

NLST - список только имен файлов.

MLST и MLSD используют формат, пригодный для машинного анализа (это то, что обозначает буква M), который описан в RFC 3659. Клиентам легче обрабатывать, и его поддержка очень приветствуется

2 голосов
/ 27 мая 2011

Каноническим местом для поиска является соответствующий RFC: http://www.ietf.org/rfc/rfc959.txt

К сожалению, в данном конкретном случае RFC довольно расплывчато:

        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-клиентами, лучше всего взглянуть на какое-либо широко распространенное программное обеспечение FTP-сервера и эмулировать формат его вывода.

...