FileSyncSystem
FileSyncSystem
FileSyncSystem 是一款集"本地文件夹监控、服务器同步、全量审计追踪"于一体的文件同步和安全管理系统。该系统采用客户端代理(Agent)和中央管理/存储端的分层架构,为用户提供实时文件监控、安全同步和完整的审计追踪功能。
系统架构
[客户端] ←→ [中央管理端]
| |
| |
[本地文件系统] [数据库/存储]
核心功能模块
1. 本地文件系统实时监控模块(客户端)
- 使用 Windows 内核级的 ReadDirectoryChangesW API 或 .NET FileSystemWatcher 实现文件系统实时监听
- 精准拦截并记录文件的创建、修改、删除、重命名、移动等动作
- 通过钩子技术或系统API监控文件权限变更(ACL更改)及复制粘贴操作
- 自动抓取触发操作的进程名称(ProcessName)、用户ID(UserName)以及时间戳,确保责任可追溯
2. 智能文件同步引擎
- 采用增量同步机制,仅传输发生变化的数据块,减少网络带宽占用
- 支持断点续传与冲突检测(如两端同时修改时的版本保留策略)
- 提供配置选项,允许设定为"本地推送到服务器"、"服务器拉取到本地"或"双向实时同步"
- 使用 TLS/SSL 协议对数据包进行加密,防止数据在网络传输中被窃取或篡改
3. 审计追踪与日志聚合模块
- 将捕获的操作转化为标准化的 JSON 格式日志
- 关键字段包括:操作类型、文件绝对路径、旧文件名/新文件名、操作用户、源IP/设备名、时间
- 针对高风险操作(如删除、覆盖),在物理执行前强制将原文件备份至服务器的隐藏隔离区
- 客户端将生成的审计日志加密后,实时异步发送至中央管理端数据库
项目结构
FileSyncSystem/
├── ClientAgent/ # 客户端代理模块
│ ├── Program.cs # 主程序入口
│ ├── FileMonitor.cs # 文件监控模块
│ ├── SyncEngine.cs # 文件同步引擎
│ └── AuditLogger.cs # 审计日志记录模块
├── ServerManager/ # 中央管理端模块
│ ├── Controllers/ # API控制器
│ ├── Services/ # 业务服务
│ ├── Models/ # 数据模型
│ ├── Program.cs # 主程序入口
│ └── Startup.cs # ASP.NET Core启动配置
└── Shared/ # 共享模型
├── AuditLog.cs # 审计日志模型
├── FileSyncConfig.cs # 文件同步配置模型
└── SyncResult.cs # 同步结果模型
技术栈
客户端技术栈
- 编程语言:C# (.NET Framework/.NET Core)
- 文件监控:FileSystemWatcher + 自定义 Hook 实现
- 同步引擎:基于增量算法实现
- 加密传输:TLS/SSL 协议
中央管理端技术栈
- 后端框架:ASP.NET Core
- 数据库:SQL Server 或 PostgreSQL
- 前端框架:React.js
- 消息队列:RabbitMQ 或 Kafka
快速开始
- 确保已安装 .NET SDK
- 在 ClientAgent 目录下运行:
dotnet run
配置说明
系统配置通过 FileSyncConfig 模型进行管理,主要配置项包括:
- SyncMode: 同步模式(Push, Pull, Bidirectional)
- WatchedFolders: 监控的本地文件夹路径
- ServerUrl: 服务器地址
- SyncInterval: 同步间隔(秒)
- EnableAuditLogging: 是否启用审计日志
- EnableEncryption: 是否启用加密传输
- BackupPath: 高风险操作备份路径
- ConflictResolution: 冲突解决策略
安全特性
- 数据加密:传输层使用 TLS/SSL,存储层使用 AES 加密
- 权限控制:基于用户角色的访问控制
- 防删档机制:高风险操作前自动备份原文件
- 日志保护:防止本地日志被篡改或删除
扩展性设计
- 插件化架构:支持自定义同步策略和审计规则
- 微服务架构:各模块独立部署,便于扩展
- 分布式部署:支持多客户端和多服务器部署
依赖项
- .NET Core 3.1 或更高版本
- Windows 操作系统(使用 Windows API)