首页 > 解决方案 > 无法使用 Paramiko Python 将文件上传到 sftp 服务器

问题描述

我想使用 Paramiko 将文件上传到 SFTP 服务器,但我似乎不正确。
我以为我得到了文件路径'/'女巫的相应错误原因是服务器上的根,但我没有得到任何东西。
我不断收到此错误:

  File "c:\python\whitelistBot\whitelistBot.py", line 63, in on_message
    sftp_client.put('C:/python/whitelistBot/whitelist1.json', '/')
  File "C:\python\whitelistBot\lib\site-packages\paramiko\sftp_client.py", line 759, in put
    return self.putfo(fl, remotepath, file_size, callback, confirm)
  File "C:\python\whitelistBot\lib\site-packages\paramiko\sftp_client.py", line 714, in putfo
    with self.file(remotepath, "wb") as fr:
  File "C:\python\whitelistBot\lib\site-packages\paramiko\sftp_client.py", line 372, in open
    t, msg = self._request(CMD_OPEN, filename, imode, attrblock)
  File "C:\python\whitelistBot\lib\site-packages\paramiko\sftp_client.py", line 813, in _request
    return self._read_response(num)
  File "C:\python\whitelistBot\lib\site-packages\paramiko\sftp_client.py", line 865, in _read_response
    self._convert_status(msg)
  File "C:\python\whitelistBot\lib\site-packages\paramiko\sftp_client.py", line 898, in _convert_status
    raise IOError(text)
OSError: Operation Unsupported

我正在运行的代码:

import paramiko


FTP_HOST = "********"
FTP_USER = "********"
FTP_PASS = "********"
FTP_PORT = ****

ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_client.connect(hostname= FTP_HOST, username=FTP_USER, password=FTP_PASS, port=FTP_PORT)
sftp_client = ssh_client.open_sftp()

sftp_client.put('C:/python/whitelistBot/whitelist1.json', '/')

sftp_client.close()
ssh_client.close()

编辑:我将放置文件的目录更改为“/home/container”,因为这是他们在网站上告诉我的,但除了我没有收到该错误消息之外,该文件不会出现在服务器上

标签: pythonsftpparamiko

解决方案


看起来我必须像这样指定文件'/whitelist1.json'的名称:

sftp_client.put('C:/python/whitelistBot/whitelist1.json', '/whitelist1.json') # don't know why but yeah

推荐阅读