/filestore-server

Golang实现仿百度网盘功能,断点上传,分片上传,秒传,账号权限管控等功能,支持阿里云OSS,AWS S3,CEPH等分布式存储

Primary LanguageHTML

一、filestore-server分布式网盘

概况

1.1 课程导学

1.2 课程介绍

精简版云盘

开发环境准备等; 接口逻辑的实现,包括上传文件,下载文件,查询以及更改文件元信息等功能; 结合Postman进行接口测试

2.1 "云存储"系统原型之简单文件上传服务架构说明

2.2 编码实战-实现上传接口

2.3 编码实战-保存文件元信息

2.4 编码实战-单个文件信息查询接口

2.5 编码实战-实现文件下载接口

2.6 编码实战-实现文件修改和删除接口

系统架构升级

"云存储"系统之基于MySQL实现的文件数据库【持久化云文件信息】

系统架构升级说明; MySQL基于读写分离的主从原理及实战部署; MySQL表字段设计及基于海量数据的水平分表; Go管理MySQL, 实现文件metaData的持久化

3.1 MySQL基础知识

3.2 MySQL主从数据同步演示

3.3 文件表的设计及创建

3.4 编码实战-持久化元数据到文件表

3.5 编码实战-从文件表中获取元数据

3.6 编码实战-使用mysql小结

加入用户系统后架构升级

“云存储”系统之基于用户系统实现的资源隔离及鉴权 【账号和应用收入息息相关】

加入用户系统后架构升级说明; 快速实现用户注册/登录/信息查询功能; 快速实现用户资源隔离存储及安全鉴权功能。

4.1 帐号系统介绍与用户表设计

4.2 编码实战-实现用户注册接口

4.3 编码实战-实现用户登录接口

二、运行

方式一

# 编译运行,会生成一个二进制可运行包main
go build main.go   #后面指定文件的build会生成对应前缀的二进制包例如main
./main

go build           #后面不接文件build,会生成项目名的二进制包例如filestore-server
./filestore-server

# 访问
http://127.0.0.1:8090/file/upload

方式二

# 直接命名运行
go run main.go

# 访问
http://127.0.0.1:8090/file/upload

参考资料:

https://github.com/Lancger/file-storage-system

https://coding.imooc.com/class/chapter/323.html#Anchor Go实战仿百度云盘 实现企业级分布式云存储系统