IOError: [Errno 2] No existe tal archivo - Paramiko put ()
Estoy cargando un archivo a través de SFTP usandoParamiko consftp.put(localFile, remoteFile)
. Hago el directorio necesario primero si es necesario con
makeCommand = 'mkdir -p "' + remotePath + '"'
ssh.exec_command(makeCommand)
esto funcionaba a veces, pero ocasionalmente recibía el siguiente error:
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
a pesar del hecho de que el archivo local definitivamente existe (ylocalFile
es la ruta correcta hacia ella) y se crea la ruta remota. Hay discusiónaquí yaquí en un problema similar, pero ninguno de los puntos planteados allí me han ayudado. Mi servidor soporta eldf -hi
mando. ¿Alguien tiene algún consejo sobre esta o una posible solución?
EDITAR
Después de las sugerencias a continuación, he intentado cambiar el directorio de trabajo consftp.chdir(remoteDirectory)
pero esta llamada produjo el mismo error que el anterior. Así que parece que esto no es sólo un problema de carga. ¿Algunas ideas?