Yes, I'm sure Rebex SFTP can help you. Although it doesn't support automated download retry or connection re-establish, these actions can easily be achieved by catching SftpException
, checking its Status
property and reacting accordingly.
In case of loss of network connectivity, the Status
will be set to SftpExceptionStatus.ConnectionClosed
. In case of a protocol error like a file lock, it will be set to SftpExceptionStatus.ProtocolError
and SftpException
's Code property can be used to determine what kind of SFTP protocol error occured.
10-12k files (100K to 15MB each) sounds like a lot. To get the highest speed out of Rebex SFTP, enable Sftp
object's UseLargeBuffers
option before connecting to the server:
sftp.Options |= SftpOptions.UseLargeBuffers; //(C#)
sftp.Options = sftp.Options Or SftpOptions.UseLargeBuffers; ' VB.NET
(where 'sftp' is an instance of Rebex.Net.Sftp)
This uses larger receive buffers at different levels (TCP/IP, SSH, SFTP), resulting in transfer speed increase.