Python SFTP:使用SFTP将内存流放入远程文件夹。类似于Ftp Stor二进制 [英] Python SFTP: Use SFTP to put memory stream into remote folder. Like FTP storbinary

查看:29
本文介绍了Python SFTP:使用SFTP将内存流放入远程文件夹。类似于Ftp Stor二进制的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在使用Python中的paraMiko。我需要SFTP一个文件到一个远程的Linux机器(开发平台是Windows)。以下是代码(正在运行)

import paramiko
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(HOST, username=USERNAME, password=PASSWORD)
stdin, stdout, stderr = client.exec_command("cd %s; pwd" % PATH)
data = stdout.readlines()
print "Current folder:"
for line in data:
    print (line.rstrip())
sftp = client.open_sftp()
sftp.put(local_path, PATH + '/' + FILE_NAME, confirm = True)

sftp.close() 
client.close()

这运行得很好。但要调用Put(),我需要将文件保存到LOCAL_PATH,这需要很长时间。

我想知道是否有一种方法可以像ftp一样在内存流中使用sftp。 对于ftp,使用In Memory Stream(工作中)速度更快:

import ftplib
ftp_conn = ftplib.FTP(HOST, USERNAME, PASSWORD)
ftp_conn.cwd(FILE_PATH)
ftp_conn.storbinary('STOR '+posixpath.basename(FILE_PATH), buffer, blocksize=1024)
ftp_conn.close()

非常感谢!

推荐答案

现在可以使用类似文件的对象: http://docs.paramiko.org/en/stable/api/sftp.html#paramiko.sftp_client.SFTPClient.putfo

这篇关于Python SFTP:使用SFTP将内存流放入远程文件夹。类似于Ftp Stor二进制的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆