gofs 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
gofs 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
gofs 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache
开发语言 Google Go 查看源码 »
操作系统 跨平台
软件类型 开源软件
所属分类 其他
开源组织
地区 国产
投 递 者 mstmdev
适用人群 未知
收录时间 2023-02-02

软件简介

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    |
|          |                           |          |                          |          |                           |          |
|          |                           |          |                          |          |                           |          |
|          |                           |          |                          |          |                           |          |
|          |                           |          |                          |          |                           |          |
+----------+                           +----------+                          +----------+                           +----------+    
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(2) 发布并加入讨论🔥
发表了资讯
2023/10/07 00:41

gofs v0.8.0 已经发布,基于 Go 的跨平台实时文件同步工具

Fixed 新增init-env.sh脚本来修复UDP缓冲区大小问题 Enhancements 移除ssh_key命令行参数,通过在source和dest命令行参数中新增一些参数来配置SFTP的认证信息 新增copy_link和copy_unsafe_link命令行参数来控制软链接在本地磁盘模式下的同步 更新scripts/build-release.sh脚本,新增linux arm64和macOS arm64发布 更新release脚本,从HEAD中获取最近一次git提交的哈希值 移除CBool结构并进行代码重构 移除未使用的全局变量 新增...

0
5
发表了资讯
2023/08/23 11:13

gofs v0.7.2 已经发布,基于 Go 的跨平台实时文件同步工具

Fixed 修复特定字符可能会破坏文件路径的问题 Enhancements 为SFTP新增一些集成测试 支持软链接本身的同步 实现通过文件查询接口获取链接信息 新增go1.21支持 移除go1.19支持 新增symlink动作 为FileInfo结构新增LinkTo字段 新增fs.IsSymlink函数 在Driver接口中新增Symlink,Lstat和ReadLink方法 更新README文档,将bat替换为bash来识别Run in Terminal快捷按钮 更新README文档,新增Web UI小节 更新依赖包,github.com/quic-g...

0
8
发表了资讯
2023/07/03 09:52

gofs v0.7.1 已经发布,基于 Go 的跨平台实时文件同步工具

Fixed 修复中继文档中的示例 修复停止grpc客户端导致panic的问题 修复同步文件到服务端场景的测试用例 Enhancements 新增dry_run命令行参数来支持启动gofs但是不真正执行同步操作 新增一些MinIO的集成测试 更新gofs程序的描述信息 在parseRedisConnection函数中返回int类型的db字段 在Loader接口中新增一些保存函数 更新构建脚本,在构建之前先切换到main分支 更新依赖包,github.com/gin-gonic/gin v1.9.0 => v1.9.1 更新依赖包...

0
7
发表了资讯
2023/06/01 13:58

gofs v0.7.0 已经发布,基于 Go 的跨平台文件同步工具

Fixed 修复grpcServer中的数据竞争错误 移除客户端多余的权限字段 修复无效赋值导致panic的问题 Enhancements 新增task api来支持任务分发 当关闭monitor时,释放sync组件中使用的资源 新增task_client_max_worker命令行参数来限制任务客户端的最大并行工作数 新增支持boltdb加载器 新增conf.ToString函数和测试 将parseFlags函数移动到独立的flag包中 为任务模式添加一些集成测试 使用mermaid时序图替换文本流程图 更新README文...

0
4
发表了资讯
2023/04/01 00:50

gofs v0.6.1 已经发布,基于 Go 的跨平台文件同步工具

gofs v0.6.1 已经发布,基于 Go 的跨平台文件同步工具 此版本更新内容包括: Fixed 更新rate测试的偏差值为8 Enhancements 新增-max_tran_rate命令行参数来支持在客户端和服务端限制最大传输速率 新增core.FlagSet结构,避免使用全局的flag.CommandLine 移除hashutil、server、httputil、ignore、daemon、conf和report包中的全局变量 新增Config.ToArgs函数,避免在daemon.Daemon中使用全局成员os.Args 将fsctl移动到一个新的独...

0
3
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
2 评论
39 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部