我正在尝试使用 paramiko 通过 SFTP 下载文件。我这样创建 SFTP 对象:
transport = paramiko.Transport((sftp_server, sftp_port))
transport.connect(username = sftp_login, password = sftp_password)
sftp = paramiko.SFTPClient.from_transport(transport)
sftp.get("file_name", '.', None)
并且,我得到了异常:
Exception python : Folder not found: \\$IP_ADDRESS\folder_1/folder_2\file_name.
我正在运行 paramiko 以连接到客户端 chrooted SFTP。文件“file_name”位于我客户的 chroot 的根目录下。
- 我不明白为什么我会出现此错误,它显然显示了我客户服务器的完整路径(在 chroot 之外)。
- 我不知道为什么我的虚拟文件不会被下载 :O
我会提供任何必要的信息。
请您参考如下方法:
以下代码在 Ubuntu 11.10 中对我有用:
sftp.get("file_name", "file_name")
我只是做了一些应该不会影响您的问题的更改:
localpath:使用本地文件名的完整路径,而不仅仅是'.'(不允许使用目录)callback:将其删除,因为None已经是默认值,实际上并不需要它
由于我没有收到关于 remotepath 参数的相同错误,我猜您可能使用了具有不同行为的不同 sftp 服务器。
我的建议是:
- 使用另一个客户端(例如
sftp命令)验证您要查找的文件确实位于您要获取它的位置。 - 使用
sftp.chdir只是为了确保所使用的默认目录是您期望的目录。
希望对您有所帮助。
