paramiko sftp.get

phi*_*ppe 1 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)
Run Code Online (Sandbox Code Playgroud)

而且,我得到了例外:

Exception python : Folder not found: \\$IP_ADDRESS\folder_1/folder_2\file_name.
Run Code Online (Sandbox Code Playgroud)

我正在运行paramiko连接到客户端chrooted SFTP.文件'file_name'位于客户端chroot的根目录下.

  • 我不明白为什么我有这个错误显示我的客户端服务器的完整路径(chroot外).
  • 我不知道为什么我的虚拟文件不会被下载:O

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

jco*_*ado 6

以下代码在Ubuntu 11.10中为我工作:

sftp.get("file_name", "file_name")
Run Code Online (Sandbox Code Playgroud)

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

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

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

我的建议是:

  • 与另一个客户端(例如sftp命令)进行验证,确定您要查找的文件确实是您尝试获取的文件.
  • 使用sftp.chdir只是为了确保使用的是默认的目录是你所期望的一个.

我希望这有帮助.