在paramiko的 sftp_file.py
中# Some sftp servers will choke if you send read/write requests larger than
# this size.
MAX_REQUEST_SIZE = 32768
我必须将该常量降低到'1024'才能使我的SFTP传输工作: pysftp download fails because of client exceeded server's internal buffers
在我的测试中,我认为SFTP的传输速度受到了负面影响 - 我与其他客户进行了比较。
任何人都可以提供一些更具体的理由说明为什么会这样(如果确实如此)?
答案 0 :(得分:2)
常量表示在单个请求中读/写的字节数。
值越低,必须使用更多请求来传输文件。
您必须等待对请求的响应的时间不会与请求大小成比例增长。除非连接到速度非常慢的本地服务器,否则连接延迟比连接速度更重要。总的来说,您必须使用的请求越多,传输文件所需的时间就越长。
可以通过按顺序分派多个请求来补偿请求大小限制,而无需等待对先前请求的响应。 SFTP允许大多数SFTP客户端执行此操作。 Paramiko是为数不多的人之一。