我正在使用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()似乎以块的形式上传字节,而不是所有字节一次,所以我发现字节要打印多次。
如何使用回调验证上传成功?
谢谢。
答案 0 :(得分:0)
滥用uploadCallback
来检查文件是否正确上传是没有意义的。
如果出现任何问题,SftpClient.UploadFile
方法将引发异常。如果未抛出,则上传成功。处理回调不会给您更多信心。
另请参阅How to perform checksums during a SFTP file transfer for data integrity?