yun

command module
v0.7.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 29, 2023 License: MIT Imports: 1 Imported by: 0

README

YUN

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

项目介绍

这个项目是一个使用Golang语言实现的分布式文件存储系统,它以插件的形式,可以实现对不同的文件源的支持,例如不仅仅可以将文件保存在本地,支持将文件保存到各大云盘,如OneDrive,百度云,阿里云、各大品牌NAS...,此外它具有跨平台、高可用、高性能、易拓展、支持文件的秒传、断点续传、分片上传等特性。此外,该存储系统还支持大文件的上传,并通过embed集成了GUI界面,方便用户使用。

安装说明

这个项目是一个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:

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

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

拓展性

通过实现对应的接口,存储服务端可以实现不同的存储类型,例如支持各大云盘,如OneDrive,百度云,阿里云、各大品牌NAS...

举例:

Step1:

core/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许可证开放源代码。

联系方式

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

感谢您的使用和贡献!

Documentation

Overview

package

Directories

Path Synopsis
cmd
package
package
flags
cmd flags
cmd flags
common
config
package vipper init
package vipper init
errs
package errs define
package errs define
leveldb
package
package
rpc
schedule
package Schedule
package Schedule
strategy
gen blockid fileid strategy
gen blockid fileid strategy
util
util
util
package
package
storage/api
package
package
storage/config
package config struct
package config struct
storage/drivers
package enter
package enter
package
base parms
storage/drivers/local
driver local , store file in local disk
driver local , store file in local disk
storage/drivers/vo
package abstract class
package abstract class
storage/models
package
package
storage/svc
package core
package core
tracker
package enter
package enter
tracker/api
package tracker core api
package tracker core api
tracker/api/manage
package manage ui apis
package manage ui apis
tracker/models
tracker models
tracker models
tracker/svc
Tracker core
Tracker core
package
package

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL