paramiko sftp.get

时间:2011-12-29 14:37:06

标签: python sftp paramiko

我正在尝试使用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

我会提供任何必要的信息。

1 个答案:

答案 0 :(得分:6)

以下代码在Ubuntu 11.10中适用于我:

sftp.get("file_name", "file_name")

我做了一些不应该影响你的问题的改变:

  • localpath:使用本地文件名的完整路径,而不仅仅是'.'(不允许使用目录)
  • callback:删除了它,因为None已经是默认值并且不是真的需要

由于我没有得到关于remotepath参数的相同错误,我猜你可能正在使用具有不同行为的不同sftp服务器。

我的建议是:

  • 与其他客户验证,例如sftp命令,您要查找的文件确实是您尝试获取的文件。
  • 使用sftp.chdir只是为了确保使用的默认目录是您期望的目录。

我希望这会有所帮助。