mirror of https://github.com/IoTcat/auxpi.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
aimerforreimu
0b76011db9
|
5 years ago | |
---|---|---|
auxpiAll | 5 years ago | |
bootstrap | 5 years ago | |
conf | 5 years ago | |
controllers | 5 years ago | |
log | 5 years ago | |
middleware | 5 years ago | |
models | 5 years ago | |
resource | 5 years ago | |
routers | 5 years ago | |
server | 5 years ago | |
static | 5 years ago | |
tests | 6 years ago | |
tools | 5 years ago | |
utils | 5 years ago | |
views | 5 years ago | |
.gitattributes | 5 years ago | |
.gitignore | 5 years ago | |
LICENSE | 6 years ago | |
README.md | 5 years ago | |
build.sh | 5 years ago | |
install.sh | 5 years ago | |
main.go | 5 years ago |
README.md
功能 特色
-
支持 web 上传图片
-
支持 API 上传图片
-
支持图床:
- 搜狗
- 新浪 (私有+公共)
- SMMS
- 奇虎 (360)
- 百度
- 阿里
- 京东
- Upload.cc
- Flickr
- 网易
- 掘金
- 本地 (由于需要对接后台,正在紧张开发中)
-
API 可以设置 token 可以私用,也可以选择关闭 API,只保留 web 上传
-
可以设置是否开启新浪图床上传(因为新浪图床需要登录自己的账号)
-
可以设置允许上传的图片最大大小 和 一次性上传的最多张数
-
简单部署即可使用,从 Release 中获取,开箱即用
-
轻量级不使用任何数据库 (暂时)
-
后台控制,用户和管理员双后台(开发中)
-
Go 语言编写速度加成(滑稽)
项目截图
部署使用
首先前排不要脸求Star ❤ (/ω\)
有问题请到 Issue 中提出
演示站点为 AuXpI 图床
因为服务器在国外,可能会上传稍微慢一些~
查看 WIKI 中的 安装教程
从源码中构建
使用 Bee 工具运行程序
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 交叉编译
API 上传
其实当时写这个程序的时候没有想要写前端的页面,是看到了另一位大佬的图床,感觉这个前端页面很好看才写网页版上传,本来想直接写个 API 服务.
API 上传实例
图片上传 V1 接口
功能 | 图片上传接口 |
---|---|
HTTP 请求方式 | POST |
URL | http://yourname/api/v1/upload |
请求参数
参数名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
image | File | 是 | 表单名称,上传图片 |
token | String | 是 | 认证所必须的 token ,如果站在没有开启则留空即可 |
apiSelect | String | 是 | 所选择的 API 类型 |
apiSelect可选参数
apiSelect 可选参数 | 参数说明 |
---|---|
SouGou | 搜狗图床 |
Sina | 新浪图床 |
Smms | SMMS 图床 |
成功上传返回
{
"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."
}
TODO
-
API 上传
-
API 自动文档
-
API v2 版本分发上传,返回所有图床储存链接
-
用户系统
-
前后端分离,Vue 驱动前端
-
后台控制
-
本地上传,各大平台对接储存
-
使用 MySQL 而不是 JSON
说明
本项目是学习 Go 的过程中,边学边写出来的程序,可能存在 bug 连篇 ,逻辑让人无法接受,南辕北辙,代码无法让人直视等副作用。