嗨嗨嗨~ 我老馬又又來了!!!上次寫了一篇我開源了一款阿里云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的中央倉庫去了,歡迎大家使用
倉庫的引用地址為:https://mvnrepository.com/artifact/io.gitee.wangfugui-ma/gitee-spring-boot-starter
現在來教大家怎么使用這個免費的jar包
目前最新的jar包版本為1.0.0
,請使用1.0.0
版本
第一步,新建一個SpringBoot項目
SpringBoot入門:如何新建SpringBoot項目(保姆級教程)
第二步,在pom文件里面引入jar包
maven項目為
<!-- 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項目為
// 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文件中配置如下信息
gitee:authorization: 62749f920df9d73bf22c135111owner: wangfugui-marepo: markdownlog: 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
@AutowiredGiteeTemplate giteeTemplate;
在你的項目中直接使用Autowired
注解注入GiteeTemplate
即可使用
第五步,驗證是否可以使用
我們編寫一個測試方法往gitee里面上傳一個文件試試
@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(你自己付費了,隨你怎么用)
后續版本考慮支持
1. 支持私人倉庫上傳預覽
2. 支持指定分支上傳
3. 支持同名文件更新
4. 歡迎開源的小伙伴加入進來 pull request,提供更多豐富的想法
倉庫地址為:https://gitee.com/wangfugui-ma/gitee-spring-boot-starter