# go-clouddisk **Repository Path**: EEPPEE_admin/go-clouddisk ## Basic Information - **Project Name**: go-clouddisk - **Description**: go 腾讯云实现网盘服务(todo) - **Primary Language**: Go - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-04 - **Last Updated**: 2025-06-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: 云盘, gozero ## README # 网盘服务功能模块 ![](./screenshot/arch.png) - gozero + xorm + mysql + redis + tencent cos + qq smtp(理论上163也行) - api 服务目录 [service](./service/) - [通用配置文件 service-api.yaml](./service/etc/service-api.yaml) - Api测试文件: [httpie](./httpie测试.sh) | [Rest Client测试](./RestClient测试.http) # docker compose up mysql database and redis - [docker-compose.yml](./docker-compose.yml) - `docker-compose down` - `docker-compose up -d` # setup database by importing sqlfiles ```bash mysql -h 127.0.0.1 -P 3306 -u root -p'123456' --default-character-set=utf8 clouddiskdb <'sqlfiles/clouddiskdb_2025-05-04_043835.sql' ``` # install cli tool with go1.23 - `go install github.com/zeromicro/go-zero/tools/goctl@v1.3.3` # maybe latest works - `goctl api new service` # Your `service` directory - `go run service.go -f etc/service-api.yaml` # install air cli tool to hot reload - `go install github.com/air-verse/air@latest` - simply use `air` to run the project - `air -c .air.toml` # 如果需要指定配置文件路径,可以使用 -c 参数 # 使用.api文件生成代码,写在Makefile里面了 - `goctl api go -api service.api -dir . -style go_zero` - `make gen-api` # toolchain notice - go 1.19 does not have `slices` package for `prometheus` dependency - upgrade go version to 1.23+ # changelog - 实现验证码发送服务(有点bug, `send_code.go`) ![](./screenshot/redis-get-verify-code.png) - 实现用户注册 ![](./screenshot/mysql-watch-data-insert.png) - 注册腾讯云cos帐号,去到控制台: https://console.cloud.tencent.com/cos/bucket ![](./screenshot/tencent-cos-step1.png) ![](./screenshot/tencent-cos-step2.png) - 存储桶访问url ![](./screenshot/bucket-url.png) - 我的cos api secret `(如果看到,请不要乱用我的, 腾讯有免费额度)` ![](./screenshot/my-api-key.png) - 存储测试结果 (`test/tencentcos_test.go`) ![](./screenshot/store-result.png) - goreleaser发布需要etc/service-api.yaml文件 - 发布需要docker-compose.yml - [goreleaser config](.goreleaser.yml) - 逻辑不太对,第一步传到存储池,第二步传到腾讯cos # ref link: - gozero api syntax [^1] - xorm doc: [^2] - goreleaser: [^3] [^1]: https://go-zero.dev/docs/tasks/dsl/api [^2]: http://xorm.topgoer.com/ [^3]: https://goreleaser.com/install