C#-Renci.Ssh.Net- UploadFile SFTP-验证文件是否成功上传

时间:2019-03-11 16:53:34

标签: c# sftp ssh.net


我正在使用Renci.Ssh.Net在SFTP位置上传文件。

           using (SftpClient client = new SftpClient(host, port, sftpUser, sftpPassword))
            {
                client.Connect();
                if (client.IsConnected)
                {
                    client.BufferSize = 1024;
                    var filePath = sftpDir + fileName;

                    client.UploadFile(memoryStream, filePath, (o) =>
                    {
                       isUploaded = true;
                    });

                    client.Disconnect();
                }
                client.Dispose();
            }

如何验证文件是否成功上传?UploadFile()函数的第三个参数是回调操作。我尝试打印回调中的字节(o),但是UploadFile()似乎以块的形式上传字节,而不是所有字节一次,所以我发现字节要打印多次。
 如何使用回调验证上传成功?
谢谢。

1 个答案:

答案 0 :(得分:0)

滥用uploadCallback来检查文件是否正确上传是没有意义的。

如果出现任何问题,SftpClient.UploadFile方法将引发异常。如果未抛出,则上传成功。处理回调不会给您更多信心。


另请参阅How to perform checksums during a SFTP file transfer for data integrity?