作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Python 3 的 paramiko 包建立 sftp 连接和上传文件。
我能够使用以下代码成功建立到服务器的连接。
import paramiko
key_file_test = './path_to_key_file/key_file.pub'
DOWNLOAD_UAT = {
"USERNAME": "xxxxxxxx",
"PASSWORD": "xxxxxxxx"
}
UAT_FTP_SITE = 'sftp-test.site.com'
transport = paramiko.Transport((UAT_SFTP_SITE,22))
transport.connect(username=DOWNLOAD_UAT['USERNAME'], password=DOWNLOAD_UAT['PASSWORD'])
transport.add_server_key(key)
sftp = paramiko.SFTPClient.from_transport(transport)
print(sftp.listdir())
''' ['archiv'] '''
sftp.put('test_sftp_upload_file.txt', remotepath='./')
但是,当我运行上面的最后一行时,我得到以下错误输出。
---------------------------------------------------------------------------
OSError Traceback (most recent call last)
<ipython-input-69-bec34aeb9958> in <module>()
----> 1 sftp.put('test_sftp_upload_file.txt', remotepath='./')
C:\ProgramData\Anaconda3\lib\site-packages\paramiko\sftp_client.py in put(self, localpath, remotepath, callback, confirm)
712 file_size = os.stat(localpath).st_size
713 with open(localpath, 'rb') as fl:
--> 714 return self.putfo(fl, remotepath, file_size, callback, confirm)
715
716 def getfo(self, remotepath, fl, callback=None):
C:\ProgramData\Anaconda3\lib\site-packages\paramiko\sftp_client.py in putfo(self, fl, remotepath, file_size, callback, confirm)
668 .. versionadded:: 1.10
669 """
--> 670 with self.file(remotepath, 'wb') as fr:
671 fr.set_pipelined(True)
672 size = self._transfer_with_callback(
C:\ProgramData\Anaconda3\lib\site-packages\paramiko\sftp_client.py in open(self, filename, mode, bufsize)
336 imode |= SFTP_FLAG_CREATE | SFTP_FLAG_EXCL
337 attrblock = SFTPAttributes()
--> 338 t, msg = self._request(CMD_OPEN, filename, imode, attrblock)
339 if t != CMD_HANDLE:
340 raise SFTPError('Expected handle')
C:\ProgramData\Anaconda3\lib\site-packages\paramiko\sftp_client.py in _request(self, t, *arg)
765 def _request(self, t, *arg):
766 num = self._async_request(type(None), t, *arg)
--> 767 return self._read_response(num)
768
769 def _async_request(self, fileobj, t, *arg):
C:\ProgramData\Anaconda3\lib\site-packages\paramiko\sftp_client.py in _read_response(self, waitfor)
817 # synchronous
818 if t == CMD_STATUS:
--> 819 self._convert_status(msg)
820 return t, msg
821
C:\ProgramData\Anaconda3\lib\site-packages\paramiko\sftp_client.py in _convert_status(self, msg)
850 raise IOError(errno.EACCES, text)
851 else:
--> 852 raise IOError(text)
853
854 def _adjust_cwd(self, path):
OSError: Bad message
我在这里关注文档 http://docs.paramiko.org/en/2.2/api/sftp.html为 paramiko 包构建我的代码。
最佳答案
根据文档,您应该指定完整的远程文件路径。
:param str remotepath: the destination path on the SFTP server. Note
that the filename should be included. Only specifying a directory
may result in an error.
一个这样的例子:
sftp.put(local_full_path_and_name, "/{f}".format(f=destination_filename))
关于python - 使用 python 的 pysftp 包,我在尝试上传文件时收到 OSError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45304727/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!