用于上传和下载的 PYSFTP 脚本

roo*_*vmc 3 python paramiko pysftp

我需要一些帮助,当我尝试连接时收到以下消息。我正在执行的脚本如下。关于如何解决此问题的任何建议?

此外,一旦我解决了这个问题,我希望向此脚本添加侦听功能,直到结果文件可用并从不同的远程目录下载它。

先感谢您

No hostkey for host mysftpserver.com found.
Exception AttributeError: "'Connection' object has no attribute 
'_sftp_live'" in <bound method Connection.__del__ of <pysftp.Connection 
object at 0x101d8cd50>> ignored

Process finished with exit code 0
Run Code Online (Sandbox Code Playgroud)

脚本

import pysftp as sftp

def sftpExample():

    try:
        s = sftp.Connection(host='mysftpserver', port=1211, username='myusername', password='mypassword')

        remotepath='/Orders/incoming/myfile.csv'
        localpath='/Users/myusername/projects/order88.csv'
        s.put(localpath,remotepath)

        s.close()

    except Exception, e:
        print str(e)

sftpExample()
Run Code Online (Sandbox Code Playgroud)

cos*_*uin 11

Stack Overflow上的pysftp 文档和其他答案似乎也表明该错误可以通过设置.cnopts.hostkeys = None

所以完整的代码类似于:

import pysftp
def sftpExample():
    cnopts = pysftp.CnOpts()
    cnopts.hostkeys = None  
    with pysftp.Connection('hostname', username='me', password='secret', cnopts=cnopts) as sftp:
        sftp.put('/Users/myusername/projects/order88.csv','/Orders/incoming/myfile.csv')  # upload file to public/ on remote
        sftp.close()

sftpExample()
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你!

  • 请**不要**使用此答案。这消除了 SSH 的识别安全性。查看官方文档并使用 `ssh` 命令或手动将服务器的主机密钥放在你的 `~./ssh/known_hosts` 文件中。 (2认同)