【发布时间】:2020-05-16 06:00:18
【问题描述】:
我有一个文件>500 MB 要使用sftp 连接下载,我尝试使用pysptp 并收到错误SSHException: Server connection dropped:
import pysftp
import sys
myHostname = "dbfiles.xyz.org"
myUsername = "XXXX"
myPassword = "YYYY"
cnopts = pysftp.CnOpts()
cnopts.hostkeys = None
with pysftp.Connection(host=myHostname, username=myUsername, password=myPassword,cnopts=cnopts) as sftp:
print("Connection succesfully stablished ... ")
localFilePath = 'c:/....'
remoteFilePath = sftp.listdir('/folder/')
for filename in remoteFilePath:
if 'string_to_match' in filename:
local_path = localFilePath + filename
print (filename)
print (local_path)
sftp.get("folder/" + filename, local_path)
在下载 18MB 的文件后得到SSHException: Server connection dropped: EOF error。有什么方法可以限制下载的数据量,或者可以延迟这个get 过程以获得完整文件,我尝试了几种方法,但由于文件太大,无法下载完整文件。任何帮助表示赞赏。
【问题讨论】:
-
您可以使用与您的 Python 代码在同一台机器上运行的任何 SFTP 客户端下载完整的文件吗?
-
是的,我可以使用 filezille 下载
-
你能从 FileZilla 和你的 Python 代码中发布一个日志文件吗?
-
@Harry_pb,你能告诉我你是怎么解决这个问题的吗,我也面临同样的问题,我的文件大小超过 1.2 GB,下载不超过 18MB
标签: python python-3.x sftp pysftp