AUXPI —— 集合多家 API 的新一代图床
本项目使用 beego + vue + element-ui 进行开发
支持拖拽对首页的菜单进行排序和开关控制
图片链接按照权重进行异步分发
首页有几个可视化的图表,方便分析
如果您想要从源代码中构建 auxpi,您可以按照下面的教程进行构建,如果您仅仅想使用 auxpi,这一段您可以跳过
请注意你,请确保您的电脑上有 Go 环境。
在 最近一次更新 中加入了批量编译打包的脚本,您可以使用此脚本进行代码的构建
bash build.sh all # 编译所有平台的程序 bash build.sh mac # 编译 mac 程序 bash build.sh windows # 编译 Windows 程序 bash build.sh linux #编译 linux 程序 bash build.sh all 2.2.0 clear # 编译程序,分别打包所有的平台的项目,2.2.0 为版本号,清空编译以后文件,只保留压缩包 bahs build.sh help #查看帮助
打包前端
cd resource yarn install yarn run build
cd $GOPATH/src git clone git@github.com:aimerforreimu/AUXPI.git cd AUXPI/ bee run auxpi
#Mac/Windows环境编译成 Linux 程序 GOOS=linux GOARCH=amd64 bee pack #Mac/Linux 环境编译 Windows 程序 GOOS=windows GOARCH=amd64 bee pack #Windows/Linux 编译 Mac 程序 GOOS=darwin GOARCH=amd64 bee pack
更多交叉编译请参考 Go 交叉编译
如果这个项目让您感觉还不错,您想二次开发一下或者想为这个项目提交 PR
1.命名规范
函数,私有变量必须采用小驼峰方式进行命名 即 sendMail(),userInfo
sendMail()
userInfo
共有变量需要使用 大驼峰 方式命名
结构体,接口必须使用 大驼峰 方式进行命名
2.代码组织
最好请按照这个下面说明的结构去组织您的代码
中间件请存放在 middleware 文件夹中
middleware
api 请按照版本号放在 controller/api/v(0-9)/中,所有 api 除去 auth 都不能进行模板引擎的渲染和操作,只允许输出 json
controller/api/v(0-9)/
auth
json
如果需要渲染模板引擎,请直接在 controller/ 下面建立对应的 controller
controller/
utils 下面的各种工具文件不允许与 models 下面的文件耦合在一起,如果要为 models 编写工具,请放到 tools 下
utils
models
tools
all.go 中只允许写入经常被引入,需要格式化成 json , xml 等格式的结构体
all.go
xml
. ├── LICENSE ├── README.md ├── auxpiAll ├── bootstrap ├── build ├── build.sh ├── conf ├── controllers ├── install.sh ├── log ├── main.go ├── middleware ├── models ├── pem ├── resource ├── routers ├── server ├── static ├── tests ├── tools ├── utils └── views
图片上传 V1 接口
请求参数
apiSelect可选参数
成功上传返回
{ "code": 200, "msg": "上传成功", "data": { "name": "Snipaste_2018-08-28_01-17-58.png", "url": "https://img04.sogoucdn.com/app/a/100520146/0dcb98aadb59c6b29dc0832eb7cc094a" } } { "code": 200, "msg": "上传成功", "data": { "name": "Snipaste_2018-08-28_01-17-58.png", "url": "https://i.loli.net/2018/11/05/5be038b1b4af6.png" } }
失败返回值
上传出错返回值
{ "code": 500, "msg": "上传失败" }
API 未开启返回值
{ "code": 405, "msg": "Method not allowed" }
Token 验证失败返回值
{ "code": 403, "msg": "Forbidden" }
选择文件为空返回值
{ "code": 500, "msg": "No files were uploaded." }
文件太大返回值
{ "code": 500, "msg": "File is too large." }