我正在通过 SFTP 使用Paramiko和sftp.put(localFile, remoteFile)
. 如果需要,我首先制作必要的目录
makeCommand = 'mkdir -p "' + remotePath + '"'
ssh.exec_command(makeCommand)
这有时有效,但我偶尔会收到以下错误:
sftp.put(localFile, remoteFile)
File "build/bdist.macosx-10.8-intel/egg/paramiko/sftp_client.py", line 565, in put
File "build/bdist.macosx-10.8-intel/egg/paramiko/sftp_client.py", line 245, in open
File "build/bdist.macosx-10.8-intel/egg/paramiko/sftp_client.py", line 635, in _request
File "build/bdist.macosx-10.8-intel/egg/paramiko/sftp_client.py", line 682, in _read_response
File "build/bdist.macosx-10.8-intel/egg/paramiko/sftp_client.py", line 708, in _convert_status
IOError: [Errno 2] No such file
尽管本地文件确实存在(并且localFile
是它的正确路径)并且远程路径已创建。这里和这里都有关于类似问题的讨论,但那里提出的任何观点都没有帮助我。我的服务器支持该df -hi
命令。有没有人对此或可能的解决方案有任何建议?
编辑
在下面的建议之后,我尝试更改工作目录,sftp.chdir(remoteDirectory)
但是这个调用产生了与上面完全相同的错误。所以看起来这不仅仅是一个上传问题。有任何想法吗?