🔥 开启 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 许可证。
