最近經常遇到文件同步的場景:開發完將文件上傳到站點、局域網內文件互拷。
因爲很多是相同的文件,覆蓋拷貝費時費力,當然也試了各種工具例如FlashFXP、Beyond Compare,但要麼部署麻煩,要麼配置麻煩,換一臺電腦又得搞一次,賊煩。
然後想着這有啥技術難度,自己搞一個唄,所以就建了這麼一個項目,因爲也是解決自己的痛點,所以目標也很明確,追求簡單、高效、好用。
目前算完成v1.0版本吧,試了局域網內文件的鏡像拷貝,還是賊快賊爽的,Ftp同步暫時沒想到辦法解決一致性校驗的問題,文件還是覆蓋拷貝,但速度也還行,畢竟文件夾有做了校驗。
========== 作者:未聞 出處:博客園 原文鏈接點此處 ==========
一、功能介紹
1. 同步類型
- 本地 to 本地(本地跨盤符拷貝50個文件,25個文件夾,6.5M,鏡像同步,耗時367.8543毫秒,速度賊快)
- 本地 to FTP(本地IIS搭建FTP,耗時1433.5284毫秒)
- FTP to 本地(本地IIS搭建FTP,耗時1100.5071毫秒)
- FTP to FTP(未測試)
2. 同步模式:鏡像同步、增量同步
3. 文件校驗策略:Size 文件大小,Date 最後修改時間,Hash 文件哈希值
二、設計思路
1.開發環境
- .NET Framework 4.6
- Visual Studio 2019
- FluentFTP 34.0.2
2.簡單畫的類圖
三、待解決問題
1. FTP上傳下載的文件,無法保留原文件的屬性(創建時間、修改時間等),導致沒辦法按最後修改時間進行一致性校驗,但是Beyond Compare可以做到保留~有了解還請不吝指點一二。
2. 校驗另一個方式是用文件的哈希值,但是目前試的幾個基於IIS的FTP服務器都不支持返回文件哈希值,所以也沒辦法~
四、參考資料