当我们把图片保存到服务器时,我们发现访问项目时,图片加载过慢,影响体验。我们可以使用阿里云的OSS来存储图片,它可以提供快速的图片响应,提升用户体验,下面介绍一下用法(比官网文档简洁)。
1.前端
<form action=“自己controller路径” method=“post” enctype=“multipart/form-data”>
<label for=“article-img”>图片</label>
<input type=“file” id=“article-img” name=“picture” accept=“image/*”/>上传文章封面图片(非必选)
</form>
2.后端
2.1引入依赖
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.10.2</version>
</dependency>
2.2创建一个工具类(根据自己喜好)
@Configuration
public class OssUtils {
public OSS oSSClientBuilderFile(MultipartFile path) throws IOException {
String endpoint = "“;
String accessKeyId = ”“;
String accessKeySecret = ”“;
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
String name = path.getOriginalFilename();
String format = new SimpleDateFormat(”YYYY-MM-dd“).format(new Date());
InputStream inputStream = path.getInputStream();
ossClient.putObject(”自己的bucket名称“,format+”/“+name, inputStream);
return ossClient;
}
}
2.3编写Controller
@Controller
public class AdminArticleController {
@Autowired
OssUtils ossUtils;
@PostMapping(”article/addNew“)
public String addNew(@RequestParam(”picture“) MultipartFile file){
OSS oss = ossUtils.oSSClientBuilderFile(file);
oss.shutdown();
String name = file.getOriginalFilename();
String format = new SimpleDateFormat(”YYYY-MM-dd“).format(new Date());
String url = ”自己bucket的访问路径“;
String picture = url + format + ”/" + name;
}
}
到此,使用表单上传图片到OSS并获取图片地址的操作就完成了。