# README
YUN
项目介绍
这个项目是一个使用Golang语言实现的分布式文件存储系统,它以插件的形式,可以实现对不同的文件源的支持,例如不仅仅可以将文件保存在本地,支持将文件保存到各大云盘,如OneDrive,百度云,阿里云、各大品牌NAS...,此外它具有跨平台、高可用、高性能、易拓展、支持文件的秒传、断点续传、分片上传等特性。此外,该存储系统还支持大文件的上传,并通过embed集成了GUI界面,方便用户使用。
安装说明
这个项目是一个Linux或Windows系统下的二进制可执行文件,不需要安装任何依赖项。只需要按照以下步骤进行即可:
- 下载最新版本的可执行文件:
wget https://github.com/PIPIKAI/yun/releases/latest/download/yun-linux-amd64
- 控制台中执行以下命令来启动客户端或存储端:
启动客户端:
./yun start --f "tracker"
启动存储端:
./yun start --f "storage"
ToDo List:
-
文件同步(实时,定时,周期性文件同步)
-
客户端生成配置文件,热加载配置文件
业务设计
- 整体架构
- 分片上传过程(详细版)
- 服务注册与发现
- etcd分布式id
自定义新的存储中心
通过实现对应的接口,存储服务端可以实现不同的存储类型,例如支持各大云盘,如OneDrive,百度云,阿里云、各大品牌NAS...
举例:
Step1:
在storage/drivers
目录下新建文件夹 one_drive
Step2:
完成core/storage/drivers/vo/idrivers.go
文件中的对应的Driver接口、
type Driver interface {
GetAddition() Addition
Init(context.Context) error
Readder
Writter
}
Step3:
创建对应的初始化函数
func New() *Local {
return &Local{}
}
并在core/storage/drivers/enter.go
文件中注册对应的Driver
var DriverCenter = map[string]vo.Driver{
"OneDrive": one_drive.New(),
}
贡献指南
我们欢迎任何形式的贡献,包括但不限于:报告问题、提交bug修复、改进文档和代码等。如果您想做出贡献,请按照以下步骤进行:
- Fork这个项目,并克隆到本地。
- 在本地分支中进行修改。
- 提交Pull Request,描述您的修改内容和用途。
许可证信息
本项目基于MIT许可证开放源代码。
联系方式
如果您对这个项目有任何问题或建议,请通过以下方式联系我们:
- 发送邮件到 [email protected]
- 在GitHub上提交问题
感谢您的使用和贡献!