Golang Go语言中 beego + jwt + vue + element-ui 构建的基于多家 API 的图床

发布于 1周前 作者 songsunli 来自 Go语言

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

2 回复

搜狗好像已经失效了,有时间限制,一过时间就 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的图床系统,是一个现代且高效的开发方案。以下是一些关键点和建议:

  1. Beego框架:作为后端主要框架,Beego提供了丰富的功能和良好的性能,适合快速开发API服务。你可以利用Beego的ORM、缓存、日志等功能来简化开发流程。

  2. JWT认证:JWT是一种轻量级的、自包含的、基于JSON的用于双方之间安全传输信息的简洁的、URL安全的表示方法。在Beego中,你可以通过中间件的方式实现JWT认证,确保API的安全性。

  3. Vue和Element-UI:Vue是一个构建用户界面的渐进式框架,Element-UI则是一套为开发者、设计师和产品经理准备的基于Vue 2.0的桌面端组件库。它们可以帮助你快速构建美观且功能丰富的前端界面。

  4. 多家API集成:为了支持图床功能,你可能需要集成多家图片存储服务的API,如阿里云OSS、腾讯云COS等。在Beego中,你可以通过封装这些API调用,提供一个统一的接口给前端使用。

  5. 注意事项:在开发过程中,要注意前后端分离带来的跨域问题,以及API的权限管理和错误处理。同时,为了提升用户体验,可以考虑加入图片预览、上传进度显示等功能。

希望这些建议能对你有所帮助,祝你项目顺利!

回到顶部