我正在整理一些东西,通过SFTP下载一些文件。我正在使用PuTTY的psftp.exe
命令。
当我在PSFTP中执行dir
/ ls
时,输出的格式是由SFTP还是由PSFTP本身标准化的?或者它只是服务器响应时发送的任何自由格式文本?
我问,因为我相信FTP(回来的时候!),它根本没有标准化,我只有一台SFTP服务器在这里进行测试。
答案 0 :(得分:2)
与FTP(使用文本 LIST
输出)不同,SFTP协议基于二进制结构,因此Putty正在进行所有格式化。具体来说,它使用SSH_FXP_READDIR命令读取目录条目,这些条目以SSH_FXP_NAME指定的格式返回。
理想情况下,您将使用API,而不是psftp。但是如果您选择解析文本,则需要担心PuTTY和PuTTY。
我的错误。 The newer draft我看过没有这样的文字longname
字段。但是,older versions会这样做。
答案 1 :(得分:2)
Matthew,本地客户端可以选择在 SSH_FXP_NAME 响应中显示 longname 插槽的信息,而不是从文件名本地生成它>和 attrs 插槽。
看看psftp如何在内部执行它,你不能完全确定它的格式在连接到不同的服务器时不会改变。