受不了github的网络限制了,我开源了一个图床工具 gitee-spring-boot-starter

嗨嗨嗨~ 我老马又又来了!!!上次写了一篇我开源了一款阿里云OSS的spring-boot-starter,然后买的资源包到期了,后面又想白(开)嫖(源)的路子,首先想到了使用github当做图床 免费开源了一个图床工具 github-spring-boot-starter,效果是相当不错,但是大家要知道的是github是国外的啊,有很多时候上传和下载都受到网络的限制了,这让博主很受苦恼。

之前也在github-spring-boot-starter 的这篇文章说过,以后有可能会出一个用gitee当做图床的spring-boot-starter,加上github确实在国内不好用,秉着支持国产的行为,这不?gitee-spring-boot-starter出来了,这次的Starter支持将gitee作为图床,远离了github在国内的网络限制。

我们先来看一下效果:

我们通过http接口上传了一个本地的文档,结果直接返回的是一个可预览的路径:

没错,和上一次作者写的方法是一样的,但是我们这次的目标是国内的gitee。而且加入了日志打印可控制的功能。这个可用到的地方就非常的多啦,例如你的项目需要存储url的路径啦,就可以直接存储在gitee,然后将可预览的url存储到你的数据库就行啦,更多的玩法可以等大家自行探索。

说了这么多,我们来看一下怎么使用这个 gitee-spring-boot-starter 目前这个jar包已经发布到maven的中央仓库去了,欢迎大家使用

仓库的引用地址为:mvnrepository.com/artifact/io...

现在来教大家怎么使用这个免费的jar包

目前最新的jar包版本为1.0.0,请使用1.0.0版本

第一步,新建一个SpringBoot项目

SpringBoot入门:如何新建SpringBoot项目(保姆级教程)

第二步,在pom文件里面引入jar包

maven项目为

java 复制代码
<!-- https://mvnrepository.com/artifact/io.gitee.wangfugui-ma/gitee-spring-boot-starter -->
<dependency>
    <groupId>io.gitee.wangfugui-ma</groupId>
    <artifactId>gitee-spring-boot-starter</artifactId>
    <version>1.0.0</version>
</dependency>

gradle项目为

java 复制代码
// https://mvnrepository.com/artifact/io.gitee.wangfugui-ma/gitee-spring-boot-starter
implementation group: 'io.gitee.wangfugui-ma', name: 'gitee-spring-boot-starter', version: '1.0.0'

第三步,配置你的gitee信息

在yml或者properties文件中配置如下信息

yaml 复制代码
gitee:
  authorization: 62749f920df9d73bf22c135111
  owner: wangfugui-ma
  repo: markdown
  log: false

gitee.authorization

这个参数是你的gitee的token,为了鉴权使用,告诉gitee这个是你

1、进入gitee官网,登录账号,悬停头像,账号设置

2、选择私人令牌,或直接点击标题链接

3、生成一个token

全选就行。

之后你就会得到一个token!把这个复制下来填到gitee.authorization参数里面去!!现在就复制!!因为关闭这个页面token就会消失了

owner

这个参数就是用户名的意思,例如作者的用户名就是wangfugui-ma,点击你的头像点击个人主页,地址栏里面就是你的owner

repo

这个就是你的仓库名称啦,新建一个仓库

注意得是公开的仓库哦!!!要不然别人也无法预览,你自己想预览也要添加鉴权过才能预览,如果这篇文章点赞高,我们后面再添加支持一个私有的访问路径。

如果看过作者上一篇写github的Starter可以看出来,我们这个gitee是没有分支选项的,因为gitee默认选择的是master分支,也就是说你哪个分支是默认的,就推送哪个分支,当然,如果这篇文章点赞高,我们后面再添加支持选择分支的版本出来。

log

填值 trueor false代表是否打印日志,即gitee返回的内容,如果选择的是true的话,方便我们的调试,可以看到控制台中返回的错误信息:

第四步,使用GiteeTemplate

java 复制代码
    @Autowired
    GiteeTemplate giteeTemplate;

在你的项目中直接使用Autowired注解注入GiteeTemplate即可使用

第五步,验证是否可以使用

我们编写一个测试方法往gitee里面上传一个文件试试

java 复制代码
    @PutMapping("/create")
    public String create(MultipartFile file) throws IOException {
        return demoService.create(file);
    }

    public String create(MultipartFile file) throws IOException {
        return giteeTemplate.putObject(file.getInputStream(), "提交",  file.getOriginalFilename());
    }

通过controller接口调用一下试试:

可以看到我们的方法直接返回了一个地址,我们可以直接打开看一下

没错!!成功上传并且可以直接预览!!!!

需要注意的点

1、每次上传的名称、路径、里面的内容是不能一样的,否则方法会返回一个空字符串回来

2、上传的图片不能太大(默认1mb),否则会报错(org.apache.tomcat.util.http.fileupload.impl.FileSizeLimitExceededException)可以通过配置解决,但是作者不建议上传太大的图片,毕竟也会消耗gitee的资源的,如果你有大图片需求建议选择阿里云oss(你自己付费了,随你怎么用)

后续版本考虑支持

markdown 复制代码
1. 支持私人仓库上传预览
2. 支持指定分支上传
3. 支持同名文件更新
4. 欢迎开源的小伙伴加入进来 pull request,提供更多丰富的想法 

仓库地址为:gitee.com/wangfugui-m...

相关推荐
撸猫7911 小时前
HttpSession 的运行原理
前端·后端·cookie·httpsession
嘵奇1 小时前
Spring Boot中HTTP连接池的配置与优化实践
spring boot·后端·http
子燕若水2 小时前
Flask 调试的时候进入main函数两次
后端·python·flask
程序员爱钓鱼2 小时前
跳转语句:break、continue、goto -《Go语言实战指南》
开发语言·后端·golang·go1.19
x66ccff2 小时前
【github】主页显示star和fork
github
Persistence___3 小时前
SpringBoot中的拦截器
java·spring boot·后端
嘵奇3 小时前
Spring Boot 跨域问题全解:原理、解决方案与最佳实践
java·spring boot·后端
堕落年代3 小时前
SpringBoot的单体和分布式的任务架构
spring boot·分布式·架构
码农飞哥4 小时前
互联网大厂Java求职面试实战:Spring Boot与微服务场景深度解析
java·数据库·spring boot·安全·微服务·消息队列·互联网医疗
景天科技苑4 小时前
【Rust泛型】Rust泛型使用详解与应用场景
开发语言·后端·rust·泛型·rust泛型