文件上传
1 阿里云服务器
1.1 导入依赖
//阿里云服务器
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.15.1</version>
</dependency>
//配置文件的Configuration properties
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
1.2 实体类设置
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@Data
@ConfigurationProperties(prefix = "alis.os")
public class AliOsProperties {
private String endpoint;
private String accessKeyId;
private String accessKeySecret;
private String bucketName;
}
1.3 设置工具类
package com.itheima.utils;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.itheima.pojo.AliOsProperties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
import java.util.UUID;
@Component
public class AliOSSUtils {
@Autowired
private AliOsProperties aliOsProperties;
public String upload(MultipartFile file) throws IOException {
InputStream inputStream = file.getInputStream();
String originalFilename = file.getOriginalFilename();
String fileName = UUID.randomUUID().toString() + originalFilename.substring(originalFilename.lastIndexOf("."));
OSS ossClient = new OSSClientBuilder().build(aliOsProperties.getEndpoint(), aliOsProperties.getAccessKeyId(), aliOsProperties.getAccessKeySecret());
ossClient.putObject(aliOsProperties.getBucketName(), fileName, inputStream);
String url = aliOsProperties.getEndpoint().split("//")[0] + "//" + aliOsProperties.getBucketName() + "." + aliOsProperties.getEndpoint().split("//")[1] + "/" + fileName;
ossClient.shutdown();
return url;
}
}
1.4 配置文件
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/webapp
username: root
password: root
servlet:
//multipart最大文件大小
multipart:
max-file-size: 10MB
max-request-size: 100MB
alis:
os:
endpoint: https://oss-cn-beijing.aliyuncs.com
accessKeyId: LTAI5tQLYaCkBL323KewaEAf32
accessKeySecret: 5FlUm97LLrFEFEkkJsFEA
bucketName: newBucket