天天看點

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;慎用!