嗨嗨嗨~ 我老马又又来了!!!上次写了一篇我开源了一款阿里云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
填值 true
or 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...
