C#操作FTP上传文件后检查上传正确性

由于网络的不稳定,或程序的中断,或者客户FTP的不确定性,上传B2B资料到客户FTP时,可能会出现文件上传错误(不全/丢失等)问题。

故希望在上传后检查正确性。

我们使用FluentFTP进行FTP传输。

如何验证文件的哈希值/校验和,如果校验和不匹配,如何重试?

将FtpVerify选项设置添加到UploadFile()或DownloadFile()以启用自动校验和验证。

//上传文件的时候重新尝试设置为3次
client.RetryAttempts = 3;

//上传一个文件,在放弃之前或尝试重传3次
client.UploadFile(@"C:\test.txt", "/test.txt", FtpExists.Overwrite, false, FtpVerify.Retry);
所有可能的配置:
  1. FtpVerify.OnlyChecksum - 验证校验和,根据成功返回真/假。
  2. FtpVerify.Delete - 验证校验和,如果不匹配就删除目标文件。
  3. FtpVerify.Retry - 验证校验和,重试复制X次,然后放弃。
  4. FtpVerify.Retry | FtpVerify.Throw - 验证校验和,重试复制X次,如果仍然不匹配则抛出错误。
  5. FtpVerify.Retry | FtpVerifyDelete - 验证校验和,重试复制X次,如果仍然不匹配就删除目标文件。
  6. FtpVerify.Retry | FtpVerifyDelete | FtpVerify.Throw - 验证校验和,重试复制X次,如果仍然不匹配就删除目标文件,然后抛出一个错误

大坑注意:

当使用“FtpVerify.OnlyChecksum”时,当Remote文件路径中含空格时,会报错:OnlyChecksum;慎用!(有可能仅我使用的版本问题,不知道后续这个bug是否已经修复了)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值