Golang Go语言中 beego + jwt + vue + element-ui 构建的基于多家 API 的图床
Golang Go语言中 beego + jwt + vue + element-ui 构建的基于多家 API 的图床
寒假抽出时间来把以前写的一个小图床项目给扩展了一下,现在图床可以向 10 多种 CDN 上传图片啦,并且支持并发备份图片哟(实验中,已开放)
另外由于是练手,所以各种古老的新的成熟的技术都用了一遍,比如模板引擎,jwt,前后端分离,websocket 等等等。
logo
_ __ __ ___ _____
/_\ /\ /\ \/ / / _ \\_ \
//_\\/ / \ \ / / /_)/ / /\/
/ _ \ \_/ / \/ ___/\/ /_
\_/ \_/\___/_/\_\/ \____/
🍭 A NEW API IMAGES STORE TOOL 🍭
功能介绍
-
支持图床:
- 搜狗
- 新浪 (私有+公共)
- SMMS
- 奇虎 (360)
- 百度
- 阿里
- 京东
- Upload.cc
- Flickr
- 网易
- 掘金
- 本地
并且可以各种姿势上传图片,开放 api 接口,允许用户拥有 api token 进行上传。
丰富(凑数)的设置
和长得还看可以的首页
感觉非常炫酷的后台首页(感谢 vud-element-admin 真的很棒)
然后还更新了一个编译和一键安装脚本
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 #查看帮助
一键安装
wget -N --no-check-certificate https://raw.githubusercontent.com/aimerforreimu/AUXPI/dev/install.sh && chmod +x install.sh && bash install.sh install
其它
演示站点为 https://test.0w0.tn/
演示站点管理员账户:
用户名:admin123
密码:admin123
邮箱:[email protected]
项目地址: https://github.com/aimerforreimu/AUXPI
如果各位觉得还不错,请 Star 鼓励一下
这个项目想用来考研复试用,感谢各位大佬的慷慨 Star (逃
更多关于Golang Go语言中 beego + jwt + vue + element-ui 构建的基于多家 API 的图床的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
搜狗好像已经失效了,有时间限制,一过时间就 404…
功能很喜欢,但环境可能有点麻烦, 一个正常的 web 环境 linux 宝塔安装了 nginx php mysql 等环境不敢乱上这个源码的脚本搭环境,生怕 web 环境受到影响…
给个建议:
上传或 api 图片,服务器以 MD5 名称先保存到服务器本地备份,图片 MD5 记录到 mysql 里返回标准 url
http://test/MD5
后台选择本地,sina,smms 等任意一个返回图片地址
mysql 字段用 id,MD5,sinaurl,smmsurl,x1url,x2url,x3url 等等
流程:
图片上传服务器 - 服务器分发各大 api 平台 - 记录各大平台返回的图片地址到 mysql
后台指定开启本地图片或 sina 图床 - 访问 http://test/MD5 - 跳转本地或 sina 图片 url
好处:各大平台有备份,url 也都保存 mysql 了,唯一标识就是 MD5 码
只要你写文章时调用的是 http://test/MD5,不管你正在使用的是什么图床平台,一旦平台挂了直接选择其他平台 url,假如全部平台挂了还有最安全的本地图片来调用…
就是说图片平台挂,不影响你发布文章调用的图片 url,因为后台一换平台就又正常恢复了,
试想一下如果不是 md5 方式保存 sql,你写文章时用的是 sina 平台的图片 url,就算你分发到各大平台,但 sina 平台挂了,你的文章不就要一个一个图片替换 url 吗? 这个工作量可是非常恐怖了,如果是采用 http://test/MD5 来中转,你就不用担心平台挂了要去文章里替换图片地址的问题…
更多关于Golang Go语言中 beego + jwt + vue + element-ui 构建的基于多家 API 的图床的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
在Go语言中,使用Beego框架结合JWT(JSON Web Token)进行认证,同时前端采用Vue和Element-UI来构建一个基于多家API的图床系统,是一个现代且高效的开发方案。以下是一些关键点和建议:
-
Beego框架:作为后端主要框架,Beego提供了丰富的功能和良好的性能,适合快速开发API服务。你可以利用Beego的ORM、缓存、日志等功能来简化开发流程。
-
JWT认证:JWT是一种轻量级的、自包含的、基于JSON的用于双方之间安全传输信息的简洁的、URL安全的表示方法。在Beego中,你可以通过中间件的方式实现JWT认证,确保API的安全性。
-
Vue和Element-UI:Vue是一个构建用户界面的渐进式框架,Element-UI则是一套为开发者、设计师和产品经理准备的基于Vue 2.0的桌面端组件库。它们可以帮助你快速构建美观且功能丰富的前端界面。
-
多家API集成:为了支持图床功能,你可能需要集成多家图片存储服务的API,如阿里云OSS、腾讯云COS等。在Beego中,你可以通过封装这些API调用,提供一个统一的接口给前端使用。
-
注意事项:在开发过程中,要注意前后端分离带来的跨域问题,以及API的权限管理和错误处理。同时,为了提升用户体验,可以考虑加入图片预览、上传进度显示等功能。
希望这些建议能对你有所帮助,祝你项目顺利!