受不了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...

相关推荐
瀚海澜生14 分钟前
链表系列进阶攻略(三):拆解 LRU 与分割链表,突破链表解题瓶颈
后端·算法
bobz96523 分钟前
supervisord 的使用
后端
大道无形我有型24 分钟前
📖 Spring 事务机制超详细讲解(哥们专属)
后端
Re27525 分钟前
springboot源码分析--自动配置流程
spring boot·后端
Piper蛋窝28 分钟前
Go 1.2 相比 Go1.1 有哪些值得注意的改动?
后端·go
努力的搬砖人.31 分钟前
java爬虫案例
java·经验分享·后端
海风极客43 分钟前
一文搞懂JSON和HJSON
前端·后端·面试
南雨北斗44 分钟前
2.单独下载和配置PHP环境
后端
海风极客1 小时前
一文搞懂Clickhouse的MySQL引擎
后端·面试·架构
都叫我大帅哥1 小时前
遍历世界的通行证:迭代器模式的导航艺术
java·后端·设计模式