SFTP transfer speed is influenced by the size of certain buffers, used during the transfer, and by use of so-called pipelining, i.e. asynchornous sending and receiving of multiple requests.
SecureBlackbox SFTP client is set in the way to work with most SFTP servers as-is. Default settings provide maximum compatibility, however the speed is lower than it could be achieved when the settings are optimized for some particular SFTP server. If you know the operations, which will be performed (upload or download or both) and the name and version of the target SFTP server, you can adjust the buffer sizes in order to achieve maximum transfer speed.
TElSftpClient component introduces several buffer-related properties. The properties to adjust are
In TElSftpClient pipelining is implemented by passing requests to TElSftpClient.Read() and TElSftpClient.Write() methods with size, larger than the value of DownloadBlockSize and UploadBlockSize properties.
For example, if DownloadBlockSize is 64K and you request 128K-large block, there will be 2 asynchonous requests sent.
TElSimpleSFTPClient offers PipelineLength property to control the number of requests, sent asynchronously. The value of 1 means "no pipelining". Eg. when you call TElSimpleSFTPClient.Read() and request 128K of data, the component will use PipelineLength property to determine the maximum size of the chunks, requested from underlying TElSftpClient.Read() method.