前言
之前使用的图床工具一直都是gitee,奈何现在加了防盗链,很多图片文件无法访问,导致很多笔记图片博客等都无法访问,鉴于此,我搭建过七牛云图床(免费10G),阿里云oss。七牛云需要开通域名https(放弃了,有域名的还是可以去用七牛云),后来就去开通了阿里云OSS对象存储,需要存储空间收费,差不多9块钱40G一年,就买了5年的,但是奈何它还要单独的收取访问的流量费用。折腾来折腾去,为何不自己搭建弄一个图床,为何不用自己的服务器呢?
前提:需要租一台服务器
1、Java具体实现
1 |
|
项目是使用的SpringBoot项目,代码其实没多少,项目也已经开源,Git链接:https://gitee.com/yuankaiqiang0/file
打包后发布运行到自己的服务器上,访问时,使用

2、使用uPic图床工具自定义搭建图床
项目运行以后使用uPic工具进行自定义配置

API地址:SpringBoot项目中的接口路径,如果要部署到服务器上,则填写服务器上的ip地址即可,有域名的填写上服务器对应的域名。
请求方式:POST或者PUT。
文件字段名:代码MultipartFile属性使用的@RequestPart(“file”)中使用的名称,必须使用@RequestPart,为啥,因为我试过使用其它的注解例如@RequestParam不行。

URL路径:接口返回的JSON类型数据中返回的字段
1
2
3
4
5#接口返回数据类型
{
"data": http://127.0.0.1:9999/img/123.jpg
}
#接收时使用["data"]方式进行接收点击其它字段:

Header:需要增加content-type为multipart/form-data,对应接口中使用的@RequestPart
Body:这三个字段对应的都是接口中必须要传递的属性,其中的imgPath和ipAddress可以根据自己的需要进行更改。我这里的imgPath使用的路径也就是我服务器中数据存储对应的路径,可以更改为自己存储路径。ipAddress为访问图片时需要访问的路径信息,具体实现是在代码中进行了拼接,也就是ipAddress+format的路径。你可能会好奇我这里为什么ip地址后面有img,其实img是我/home/file/文件路径下面的一个文件夹,这些都可以根据自己的需要进行自定义的更改。
1
2
3
4
5
6
7
8
9
10
public class WebMvcConfiguration implements WebMvcConfigurer {
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**")
.addResourceLocations("file:/home/file/");
}
}