由于網絡的不穩定,或程式的中斷,或者客戶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);
所有可能的配置:
- FtpVerify.OnlyChecksum - 驗證校驗和,根據成功傳回真/假。
- FtpVerify.Delete - 驗證校驗和,如果不比對就删除目标檔案。
- FtpVerify.Retry - 驗證校驗和,重試複制X次,然後放棄。
- FtpVerify.Retry | FtpVerify.Throw - 驗證校驗和,重試複制X次,如果仍然不比對則抛出錯誤。
- FtpVerify.Retry | FtpVerifyDelete - 驗證校驗和,重試複制X次,如果仍然不比對就删除目标檔案。
- FtpVerify.Retry | FtpVerifyDelete | FtpVerify.Throw - 驗證校驗和,重試複制X次,如果仍然不比對就删除目标檔案,然後抛出一個錯誤
大坑注意:
當使用“FtpVerify.OnlyChecksum”時,當Remote檔案路徑中含空格時,會報錯:OnlyChecksum;慎用!