我正在整理一些东西来通过 SFTP 下载一些文件。我正在使用 PuTTY 的psftp.exe
命令。
当我在 PSFTP 中执行dir
/ls
时,输出的格式是由 SFTP 还是由 PSFTP 本身标准化的?或者它只是服务器碰巧发送的任何自由格式的文本作为响应?
我之所以问是因为我相信 FTP(早在什么时候!),它根本没有标准化,我这里只有一个 SFTP 服务器可以测试。
我正在整理一些东西来通过 SFTP 下载一些文件。我正在使用 PuTTY 的psftp.exe
命令。
当我在 PSFTP 中执行dir
/ls
时,输出的格式是由 SFTP 还是由 PSFTP 本身标准化的?或者它只是服务器碰巧发送的任何自由格式的文本作为响应?
我之所以问是因为我相信 FTP(早在什么时候!),它根本没有标准化,我这里只有一个 SFTP 服务器可以测试。
与 FTP(使用文本LIST
输出)不同,SFTP 协议是基于二进制结构的,所以 Putty 负责所有的格式化。具体来说,它使用SSH_FXP_READDIR命令读取目录条目,这些条目以SSH_FXP_NAME指定的格式返回。
理想情况下,您将使用 API,而不是 psftp。但是如果你选择解析文本,你有 PuTTY 并且只有 PuTTY 需要担心。
Matthew,本地客户端可能会选择从 SSH_FXP_NAME 响应中显示有关长名称插槽的信息,而不是从文件名和属性插槽本地生成它。
看看 psftp 在内部是如何做的,你不能完全确定它的格式在连接到不同的服务器时不会改变。