Paramikoを使用して SFTP 経由でファイルをアップロードしています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)
たが、この呼び出しで上記とまったく同じエラーが発生しました。したがって、これはアップロードの問題だけではないようです。何か案は?