开源免费基于 API 的简单图床–AUXPI

作者 : King 本文共2849个字,预计阅读时间需要8分钟 发布时间: 2024-10-4 共482人阅读

AUXPI基于API的图床

开源免费基于 API 的简单图床–AUXPI

GitHub:https://github.com/aimerforreimu/AUXPI/

demo:https://test.0w0.tn/

功能 特色

支持 web 上传图片

支持 API 上传图片

支持图床:

搜狗
新浪 (私有+公共)
SMMS
奇虎 (360)
百度
阿里
京东
Upload.cc
Flickr
网易
掘金
本地

开源免费基于 API 的简单图床–AUXPI

安装教程

如果知识兔您是空白的 vps,您可以直接使用一键脚本进行安装,安装教程

注意此脚本会给您安装 Nginx 和 Mysql,请确保您的服务器是干净的

https://github.com/aimerforreimu/AUXPI/wiki/%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85%E8%84%9A%E6%9C%AC

如果知识兔您想手动安装,知识兔可以参考安装 wiki

https://github.com/aimerforreimu/AUXPI/wiki/%E5%9B%BE%E5%BA%8A%E9%85%8D%E7%BD%AE

演示站点为 https://test.0w0.tn/

演示站点管理员账户:

用户名:admin123
密码:admin123
邮箱:auxpi@0w0.tn
开发人员 && 折腾用户

如果知识兔您想要从源代码中构建 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
使用 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 交叉编译

二次开发规范

如果知识兔这个项目让您感觉还不错,您想二次开发一下或者想为这个项目提交 PR

1.命名规范

函数,私有变量必须采用小驼峰方式进行命名 即 sendMail(),userInfo

共有变量需要使用大驼峰方式命名

结构体,接口必须使用大驼峰方式进行命名

2.代码组织

最好请按照这个下面说明的结构去组织您的代码

中间件请存放在 middleware 文件夹中

api 请按照版本号放在 controller/api/v(0-9)/中,所有 api 除去 auth 都不能进行模板引擎的渲染和操作,只允许输出 json

如果知识兔需要渲染模板引擎,请直接在 controller/ 下面建立对应的 controller

utils 下面的各种工具文件不允许与 models 下面的文件耦合在一起,如果知识兔要为 models 编写工具,请放到 tools 下

all.go 中只允许写入经常被引入,需要格式化成 json , 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

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 连篇 ,逻辑让人无法接受,南辕北辙,代码无法让人直视等副作用。

下载仅供下载体验和测试学习,不得商用和正当使用。

下载体验

请输入密码查看下载!

如何免费获取密码?

点击下载

小鱼网是一个美好的开源学习社区,学习编程,学习WordPress,下载WordPress插件主题,
小鱼网 » 开源免费基于 API 的简单图床–AUXPI

常见问题FAQ

发表回复

分享最优质的学习资料

立即查看 了解详情