SMMS图床Java接口上传
前言
个人项目开发中,网站建设中需要用到大量的图片以及用户上传的图片,如果服务器带宽小,磁盘容量小将所有的图片信息全部存储在服务器上不太现实,这里建议将图片数据存储在对象存OSS上或者将图片保存在图床上,减少带宽费用节约成本。
项目环境
SpringBoot:3.x
JDK:17.0.6
unirest:3.13.12
演示图床:smms.app(sm.ms)
环境引入
Maven工程
<dependency>
<groupId>com.konghq</groupId>
<artifactId>unirest-java</artifactId>
<version>3.13.2</version>
</dependency>
程序源码
void upload() {
String url = "https://smms.app/api/v2/token";
File file = new File("D:\\ceshi.png");//或者是前端传来的图片数据
HttpResponse<String> response = Unirest.post("https://smms.app/api/v2/upload")
.header("Authorization", "<登录smms.app在API Token中获取个人的Token>")
.field("smfile", file)
// .field("format", "png")
.asString();
System.out.println(response.getBody());
}
响应示例
{
"success": true,
"code": "success",
"message": "Upload success.",
"data": {
"file_id": 0,
"width": 743,
"height": 453,
"filename": "bg2.jpg",
"storename": "LlU2yVbiAujT7M5.jpg",
"size": 39570,
"path": "/2023/07/24/LlU2yVbiAujT7M5.jpg",
"hash": "hbMCJryqgFifAVdE9OK1p3jYc",
"url": "https://s2.loli.net/2023/07/24/LlU2yVbiAujT7M5.jpg",
"delete": "https://smms.app/delete/hbMCJryqgFifAVdE9OK1p3jYc",
"page": "https://smms.app/image/LlU2yVbiAujT7M5"
},
"RequestId": "8A696A28-00B1-453A-8080-4789D36Da90C"
}
官方文档
官方文档地址(国内网络可能无法进入或加载缓慢): smmsApi官方文档地址