• 做一款简单、高效、好用的文件同步工具


    最近经常遇到文件同步的场景:开发完将文件上传到站点、局域网内文件互拷。

    因为很多是相同的文件,覆盖拷贝费时费力,当然也试了各种工具例如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服务器都不支持返回文件哈希值,所以也没办法~

    四、参考资料

    --------------------------------------------------

    技术,让世界更美好 | 分享,让技术更简单
    郑重申明:转载请留言告知,不能擅自篡改文章内容
  • 相关阅读:
    jpype
    Java获取类中的所有方法
    SQL中INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN区别
    如何用命令将本地项目上传到git
    Java连接Mysql:通过配置文件
    lsof -i:port_number
    yum install lsof
    Git的基本使用方法(受益匪浅)
    [后端]gitlab之gitlab-ci自动部署
    centos7安装redis-4.0.1集群
  • 原文地址:https://www.cnblogs.com/yokeqi/p/15201508.html
Copyright © 2020-2023  润新知