首页 > 解决方案 > C#-Renci.Ssh.Net- UploadFile SFTP- 验证文件是否上传成功

问题描述


我正在使用 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() 以块的形式上传字节,而不是一次上传所有字节,所以我发现要打印多次的字节。
如何使用回调来验证上传成功?
谢谢。

标签: c#sftpssh.net

解决方案


uploadCallback如果文件上传正确,那么滥用检查是没有意义的。

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


另请参阅如何在 SFTP 文件传输期间执行校验和以确保数据完整性?


推荐阅读