Я соединяю что-то для загрузки некоторых файлов по SFTP. Я использую PuTTY psftp.exe
команда.
Когда я делаю a dir
/ls
в PSFTP формат вывода стандартизирован, или SFTP или самим PSFTP? Или это только безотносительно свободной формы пишут сообщение, сервер, оказывается, отправляет в ответ?
Я спрашиваю, потому что я верю в FTP (путь назад, когда!), это нисколько не было стандартизировано, и у меня только есть один сервер SFTP здесь для тестирования против.
В отличие от FTP (который использовал текстовый вывод LIST
), протокол SFTP основан на двоичных структурах, поэтому Putty выполняет все форматирование. В частности, он использует команду SSH_FXP_READDIR для чтения записей каталога, которые возвращаются в формате, указанном SSH_FXP_NAME.
В идеале вы должны использовать API, а не psftp. Но если вы решите разобрать текст, у вас есть PuTTY и только PuTTY, о которых нужно беспокоиться.
Моя ошибка. В более новом черновике, который я посмотрел, нет такого текстового поля longname
. Тем не менее, более старые версии делают.
Мэтью, локальный клиент может выбрать отображение информации о слотах longname из ответа SSH_FXP_NAME вместо того, чтобы генерировать ее локально из слоты filename и attrs .
Даже не глядя на то, как psftp делает это внутри, нельзя быть полностью уверенным, что его формат не изменится при подключении к другому серверу.