文件上传阿里云OSS
spring boot + mybatis-plus
pom.xml 导包
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.4</version>
</dependency>
<!-- 阿里云 对象存储-->
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.15.0</version>
</dependency>
.yml 配置
servlet:
multipart:
max-request-size: 100MB
mvc:
pathmatch:
matching-strategy: ant_path_matcher
上传文件的工具类
public class AliOssUtil {
//存储空间所在的城市域名
public static final String endpoint = "oss-cn-beijing.aliyuncs.com";
//账号的key -保密
public static final String accessKeyId = "LTAI5t5ZPUfK5nTEUPCwzSxP";
//账号的密钥 -保密
public static final String accessKeySecret = "BdWzLO0B8Z7YhzBK3Hx2CvQJudyo32";
//存储空间名
public static final String bucketName = "Java2022";
//阿里云 Oss的客户端对象
private static OSS client;
static {
// 完成实例化
client = new OSSClientBuilder().build(endpoint,accessKeyId,accessKeySecret);
}
/**
* @Description: 上传资源,新增文件
* @param: [fileName 上传的文件名, data 文件内容, date 访问地址的有效期]
* @return: 返回 访问地址
*/
public static String upload(String fileName, byte[] data, Date date){
// 上传文件内容
client.putObject(bucketName,fileName,new ByteArrayInputStream(data));
// 返回访问地址
return getUrl(fileName,date);
}
/**
* @Description: 获取对象的访问地址
* @param: [fileName 文件名, date 访问地址的有效期]
* @return: java.lang.String
*/
public static String getUrl(String fileName,Date date){
return client.generatePresignedUrl(bucketName,fileName,date).toString();
}
/**
* @Description: 验证对象是否存在
* @param: [fileName 文件名]
* @return: boolean
*/
public static boolean exists(String fileName){
return client.doesObjectExist(bucketName,fileName);
}
/**
* @Description: 删除文件
* @param: [fileName 文件名]
* @return: boolean
*/
public static boolean delete(String fileName){
try {
client.deleteObject(bucketName,fileName);
return true;
}catch (Exception e){
return false;
}
}
}
控制器写法
@PostMapping("/uploadOss.do")
public String uploadOss(@RequestPart MultipartFile file) throws IOException {
// 验证文件是否为空
if (!file.isEmpty()){
// 获取文件名
String fn = file.getOriginalFilename();
// 获取文件内容
byte[] data = file.getBytes();
// 存储文件到阿里云的OSS服务器
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.YEAR,10);
String url = AliOssUtil.upload(fn, data, calendar.getTime());
return url;
}else {
return "文件为空!!!";
}
}

浙公网安备 33010602011771号