🔥 开启 Go 语言云盘项目之旅 这是一个使用 Go 语言开发的项目,致力于打造一个高效、安全的云盘系统。
本项目已具备基本的云盘功能框架,涵盖初始化应用、路由管理、数据库连接等核心功能。
此截图展示了云盘的主界面,用户可在此进行文件的上传、下载和管理操作。
管理员能够在该界面进行系统配置和用户管理。
- Go 23.1
- 安装 Go 环境:确保你已安装 Go 23.1 或更高版本。
- 克隆项目:
git clone https://github.com/wangyi1310/occrq-cloud-disk.git cd occrq-cloud-disk
- 编译并运行:
go build -ooccrq-cloud-disk . ./occrq-cloud-disk
使用 gitdiagram 自动生成。
graph TD;
subgraph 用户端
A[Web端] -->|HTTP/HTTPS请求| B[负载均衡器];
C[移动端] -->|HTTP/HTTPS请求| B[负载均衡器];
D[API客户端] -->|HTTP/HTTPS请求| B[负载均衡器];
end;
subgraph 服务端
B[负载均衡器] -->|请求分发| E[应用服务器];
E[应用服务器] -->|元数据创建/删除/查找| F[元数据模块];
E[应用服务器] -->|文件上传/下载/修改/删除| G[对象存储模块];
E[应用服务器] -->|数据交互| H[数据库];
E[应用服务器] --> |加解密/鉴权 | L[安全模块];
F[元数据管理模块] -->|管理| H[数据库];
end;
subgraph 存储端
G[对象存储模块] -->|存储数据| I[分布式存储节点];
end;
- 根目录:
Dockerfile
:用于构建 Docker 镜像的文件。README.md
:本项目说明文档。bootstrap/
:项目初始化相关代码。app.go
:应用初始化和更新检查。init.go
:项目初始化入口。
conf/
:项目配置文件。conf.go
:配置解析和验证。defaults.go
:默认配置。version.go
:项目版本信息。
go.mod
:定义项目的模块信息和 Go 版本。main.go
:包含程序的入口函数main
。models/
:数据库模型和连接相关代码。init.go
:数据库初始化和连接。
pkg/
:项目工具包。log/
:日志记录工具。request/
:HTTP 请求工具。util/
:通用工具函数。
routers/
:路由管理。controllers/
:控制器,处理具体的业务逻辑。router.go
:路由初始化和配置。
serializer/
:序列化和反序列化相关代码。response.go
:响应序列化。
InitApplication()
:初始化应用,打印应用信息并启动更新检查。CheckUpdate()
:检查 GitHub 上是否有新版本可用。
system
结构体:存储系统配置信息,包括运行模式、监听地址等。mapSection()
:解析配置文件并验证配置的合法性。
Init()
:初始化数据库连接,根据配置选择不同的数据库类型。connectSQLite()
和connectMySQL()
:分别用于连接 SQLite 和 MySQL 数据库。
RandStringRunes()
:生成随机字符串。ContainsUint()
和ContainsString()
:检查切片中是否包含指定元素。IsInExtensionList()
:检查文件扩展名是否在指定列表中。Replace()
:根据替换表执行批量替换。BuildRegexp()
:构建用于 SQL 查询的多条件正则表达式。BuildConcat()
:根据数据库类型构建字符串连接表达式。SliceIntersect()
和SliceDifference()
:求两个切片的交集和差集。
Init()
:根据配置的运行模式初始化路由。InitMaster()
和InitSlave()
:分别初始化主模式和从模式的路由。
Logger
结构体:日志记录器,支持不同级别的日志输出。BuildLogger()
:构建日志记录器。Log()
:返回日志记录器实例。
如果你想为这个项目做出贡献,请参考 贡献指南。
本项目采用 MIT 许可证。