AUXPI集合多家 API 的新一代圖床
AUXPI —— 集合多家 API 的新一代圖床
本項目使用 beego + vue + element-ui 進行開發(fā)
功能 特色
- 支持 web 上傳圖片
- 支持 API 上傳圖片
- 支持分發(fā),控制反轉(zhuǎn)
- 各種自由定制請看下面的截圖
項目截圖
支持拖拽對首頁的菜單進行排序和開關(guān)控制
圖片鏈接按照權(quán)重進行異步分發(fā)
首頁有幾個可視化的圖表,方便分析
分發(fā)原理
開發(fā)人員 && 折騰用戶
如果您想要從源代碼中構(gòu)建 auxpi,您可以按照下面的教程進行構(gòu)建,如果您僅僅想使用 auxpi,這一段您可以跳過
請注意你,請確保您的電腦上有 Go 環(huán)境。
從源碼中構(gòu)建
使用腳本構(gòu)建
在 最近一次更新 中加入了批量編譯打包的腳本,您可以使用此腳本進行代碼的構(gòu)建
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 [email protected]:aimerforreimu/AUXPI.git cd AUXPI/ bee run auxpi
交叉編譯
#Mac/Windows環(huán)境編譯成 Linux 程序 GOOS=linux GOARCH=amd64 bee pack #Mac/Linux 環(huán)境編譯 Windows 程序 GOOS=windows GOARCH=amd64 bee pack #Windows/Linux 編譯 Mac 程序 GOOS=darwin GOARCH=amd64 bee pack
更多交叉編譯請參考 Go 交叉編譯
二次開發(fā)規(guī)范
如果這個項目讓您感覺還不錯,您想二次開發(fā)一下或者想為這個項目提交 PR
1.命名規(guī)范
-
函數(shù),私有變量必須采用小駝峰方式進行命名 即
sendMail(),userInfo -
共有變量需要使用大駝峰方式命名
-
結(jié)構(gòu)體,接口必須使用大駝峰方式進行命名
2.代碼組織
最好請按照這個下面說明的結(jié)構(gòu)去組織您的代碼
-
中間件請存放在
middleware文件夾中 -
api 請按照版本號放在
controller/api/v(0-9)/中,所有 api 除去auth都不能進行模板引擎的渲染和操作,只允許輸出json -
如果需要渲染模板引擎,請直接在
controller/下面建立對應(yīng)的 controller -
utils下面的各種工具文件不允許與models下面的文件耦合在一起,如果要為models編寫工具,請放到tools下 -
all.go中只允許寫入經(jīng)常被引入,需要格式化成json,xml等格式的結(jié)構(gòu)體
.
├── 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 上傳實例
圖片上傳 V1 接口
| 功能 | 圖片上傳接口 |
|---|---|
| HTTP 請求方式 | POST |
| URL | http://yourname/api/v1/upload |
請求參數(shù)
| 參數(shù)名稱 | 類型 | 是否必須 | 描述 |
|---|---|---|---|
| image | File | 是 | 表單名稱,上傳圖片 |
| token | String | 是 | 認證所必須的 token ,如果站在沒有開啟則留空即可 |
| apiSelect | String | 是 | 所選擇的 API 類型 |
apiSelect可選參數(shù)
| apiSelect 可選參數(shù) | 參數(shù)說明 |
|---|---|
| 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."
}