使用gitee仓库来做一个简单好用的图床
这里我只是做简单了的案例
文末有源代码,和demo链接
- 创建web项目
- 配置一下静态资源路径,映射到服务外部
@SpringBootConfiguration
public class MyWebMvcConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
String path;
if (SysVerionUtil.isLinux()) {
path=Global.LINUX_PATH;
}else{
path=Global.WIN_PATH;
}
registry.addResourceHandler("/**").addResourceLocations("file:"+path);
}
}
- 下载git创建一个git仓库
这就没啥好解释的会做,这个仓库只用了存放照片
- 然后编写一个git脚本,vim acpp.sh
cd /data/repository/imgrepo/ # 这里路径就是你本地仓库的位置,
git add .
git commit . -m "f"
git pull
git push
# 这里在执行文件时可能会报错,无权限
# 执行添加权限命令
# chmod u+x 文件名
- 写一个文件上传控制器
@CrossOrigin
@RestController
public class UploadController {
@PostMapping("/upload")
public Map<String,Object> upload(@RequestParam("file") MultipartFile file) throws IOException {
Map<String,Object> map = new HashMap<>();
String path;
if(SysVerionUtil.isLinux()){
path= Global.LINUX_PATH;
}else{
path=Global.WIN_PATH;
}
String originalFilename = file.getOriginalFilename();
InputStream inputStream = file.getInputStream();
OutputStream outputStream = new FileOutputStream(path+originalFilename);
IOUtils.copy(inputStream, outputStream);
if (SysVerionUtil.isLinux()) {
Runtime.getRuntime().exec(Global.LINUX_CMD);
}
map.put("url",Global.URL_PROFILE+originalFilename);
return map;
}
}
其实也就是这些,总体思路就是
1.将文件上传到我们本地git仓库,
2.执行git脚本
3.将本地文件仓库推送到远程,
大功告成,这样就可以访问远程文件了,用来存放一些,图片和小文件还是挺不错
执行效果
其实写出来,就是想混几个赞,奈何文笔不好,你们可以看源码,也欢迎评论呀!!!
源码:https://gitee.com/yan-shi-kun/mydata
demo: http://8.131.54.14:8080/mydata/index.html
图床仓库:https://gitee.com/yan-shi-kun/imgrepo