阿里云OSS
一、动静分离
动静分离是指在web服务器架构中,将静态页面与动态页面或者静态内容接口和动态内容接口分开不同系统访问的架构设计方法,进而提升整个服务访问性能和可维护性。
二、阿里云OSS简介
阿里云对象存储OSS(Object Storage Service)提供基于网络的数据存取服务。使用OSS,您可以通过网络随时存储和调用包括文本、图片、音视频在内的各类数据文件。
三、阿里云OSS的配置
1、开通OSS功能
2、创建Bucket
3、测试文件访问功能
4、创建一个专门用户用来管理OSS文件
5、给用户添加管理OSS的权限
四、阿里云OSS在项目中的使用
1、导入相关依赖
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alicloud-oss</artifactId> <version>2.2.0.RELEASE</version> </dependency>
2、添加相关配置
spring: application: name: servlet: multipart: max-file-size: 10MB max-request-size: 10MB cloud: alicloud: access-key: #创建用户时生成的key secret-key: #创建用户时生成的secret-key,见上方三第4步 oss: endpoint: #填写endpoint,见上方三第2步 server: port: 8080 bucketName: #填写bucket名称,见上方三第2步
3、编写相关代码
@Controller public class UploadController { @Resource private OSSClient ossClient; @Value("${bucketName}") private String bucketName; @Value("${spring.cloud.alicloud.oss.endpoint}") private String endPoint; @GetMapping("/") public String index(){ return "/index"; } @PostMapping("/upload") public String saveFile(MultipartFile file, Model model) throws IOException { String name = String.valueOf(IdWorker.instance.nextId()); ossClient.putObject(bucketName, name, file.getInputStream()); String path = "https://" + bucketName + "." + endPoint + "/" + name; model.addAttribute("path", path); System.out.println("上传成功"); return "success"; } }
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="/upload" method="post" enctype="multipart/form-data"> <input type="file" name="file"><br/> <input type="submit" value="上传"> </form> </body> </html>
success.html
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>图片显示:</h1> <img th:src="${path}" width="150px"> </body> </html>
参考文档: