gofs-基于Go的跨平台文件同步工具
开源项目标题
gofs
项目应用场景
gofs是基于golang开发的一款开箱即用的跨平台文件同步工具,目前主要支持以下几种基本场景的文件同步,并且可以通过组合不同的场景来实现更加复杂的同步需求。
在磁盘之间同步
使用本地磁盘在磁盘之间同步文件
+----------+ +----------+ +----------+
| |<---(A)-- monitor disk ----+ | | |
| DiskA | | Client | | DiskB |
| |----(B)--- notify change --->| | | |
| | | | | |
| |<---(C)--- read file ----| | | |
| | | | | |
| |----(D)--- return file --->| |----(E)--- write file --->| |
| | | | | |
+----------+ +----------+ +----------+
从服务器端同步
+----------+ +----------+ +----------+ +----------+
| |<---(A)-- monitor disk ----+ | | | | |
| Server | | Server | | Client | | Client |
| Disk |----(B)--- notify change --->| |----(C)--notify change --->| | | Disk |
| | | | | | | |
| |<---(E)--- read file ----| |<---(D)-- pull file ----| | | |
| | | | | | | |
| |----(F)--- return file --->| |----(G)--- send file --->| |----(H)--- write file --->| |
| | | | | | | |
+----------+ +----------+ +----------+ +----------+
同步到服务器端
+----------+ +----------+ +----------+ +----------+
| |<---(A)--- monitor disk ----+ | | | | |
| Client | | Client | | Server | | Server |
| Disk |----(B)--- notify change --->| | | | | Disk |
| | | | | | | |
| |<---(C)--- read file ----| | | | | |
| | | | | | | |
| |----(D)--- return file --->| |----(E)--- push file --->| |----(F)--- write file --->| |
| | | | | | | |
+----------+ +----------+ +----------+ +----------+
从SFTP服务器上同步
使用SFTP拉取客户端从SFTP服务器上同步文件
+----------+ +----------+ +----------+ +----------+
| |<---(A)--- monitor disk ----+ | | | | |
| Client | | Client | | SFTP | | SFTP |
| Disk |----(B)--- notify change --->| | | Server | | Server |
| | | | | | | Disk |
| |<---(C)--- read file ----| | | | | |
| | | | | | | |
| |----(D)--- return file --->| |----(E)--- push file --->| |----(F)--- write file --->| |
| | | | | | | |
+----------+ +----------+ +----------+ +----------+
同步到SFTP服务器
使用SFTP推送客户端同步文件到SFTP服务器
+----------+ +----------+ +----------+ +----------+
| | | +----(A)--- pull file --->| |----(B)--- read file --->| |
| Client | | Client | | SFTP | | SFTP |
| Disk |<---(E)--- write file ----| |<---(D)--- send file ----| Server |<---(C)--- return file ----| Server |
| | | | | | | Disk |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
+----------+ +----------+ +----------+ +----------+
从MinIO服务器上同步
使用MinIO拉取客户端从MinIO服务器上同步文件
+----------+ +----------+ +----------+ +----------+
| |<---(A)--- monitor disk ----+ | | | | |
| Client | | Client | | MinIO | | MinIO |
| Disk |----(B)--- notify change --->| | | Server | | Server |
| | | | | | | Disk |
| |<---(C)--- read file ----| | | | | |
| | | | | | | |
| |----(D)--- return file --->| |----(E)--- push file --->| |----(F)--- write file --->| |
| | | | | | | |
+----------+ +----------+ +----------+ +----------+
同步到MinIO服务器
使用MinIO推送客户端同步文件到MinIO服务器
+----------+ +----------+ +----------+ +----------+
| | | +----(A)--- pull file --->| |----(B)--- read file --->| |
| Client | | Client | | MinIO | | MinIO |
| Disk |<---(E)--- write file ----| |<---(D)--- send file ----| Server |<---(C)--- return file ----| Server |
| | | | | | | Disk |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
+----------+ +----------+ +----------+ +----------+
https://github.com/no-src/gofs
项目地址(必填):- gitcode(选填):https://gitcode.net/no-src/gofs
- github(选填):https://github.com/no-src/gofs
- gitee(选填):https://gitee.com/no-src/gofs