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
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
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.