Skip to content
/ yun Public

Use golang, grpc, and gin to implement a distributed file storage system modeled after gofastdfs, and support cloud storage.

License

Notifications You must be signed in to change notification settings

PIPIKAI/yun

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YUN

GitHub go.mod Go version GitHub GitHub commit activity HitCount GitHub last commit Codacy Badge Go Report Card GitHub Repo stars

项目介绍

该开源项目是一个高效可靠的分布式文件存储系统,采用了多种前沿技术,包括Gin、gRPC、Etcd和RabbitMQ,旨在为用户提供全面的文件存储和管理解决方案。通过整合各项功能和技术,我们实现了文件上传、分片上传、秒传、断点续传、文件定时同步、冗余备份、线性扩容等一系列核心功能,同时引入了插件化架构,支持底层存储对象的灵活注册,可连接主流云存储厂商的对象存储服务(OSS)或本地存储设备。

安装说明

这个项目是一个Linux或Windows系统下的二进制可执行文件,不需要安装任何依赖项。只需要按照以下步骤进行即可:

  1. 下载最新版本的可执行文件:
wget https://github.com/PIPIKAI/yun/releases/latest/download/yun-linux-amd64
  1. 控制台中执行以下命令来启动客户端或存储端:

启动客户端:

./yun start --f "tracker"

启动存储端:

./yun start --f "storage" 

ToDo List:

  • 文件同步(实时,定时,周期性文件同步)

  • auth

  • 文件管理

  • ui

  • 客户端生成配置文件,热加载配置文件

业务设计

  • 整体架构

架构图

  • 分片上传过程(详细版)

整体架构

  • 服务注册与发现

服务注册与发现

  • 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修复、改进文档和代码等。如果您想做出贡献,请按照以下步骤进行:

  1. Fork这个项目,并克隆到本地。
  2. 在本地分支中进行修改。
  3. 提交Pull Request,描述您的修改内容和用途。

许可证信息

本项目基于MIT许可证开放源代码。

联系方式

如果您对这个项目有任何问题或建议,请通过以下方式联系我们:

感谢您的使用和贡献!

About

Use golang, grpc, and gin to implement a distributed file storage system modeled after gofastdfs, and support cloud storage.

Resources

License

Stars

Watchers

Forks

Packages