pull/1/head
zhaochencheng 3 years ago
parent c8966780ee
commit 0e9364e33d

@ -126,6 +126,12 @@
<version>${commons.fileupload.version}</version>
</dependency>
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.15.2</version>
</dependency>
<!-- excel工具 -->
<dependency>
<groupId>org.apache.poi</groupId>

@ -0,0 +1,43 @@
package com.ruoyi.web.controller.common;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.OssUtils;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@RestController
@Api(tags = "OSS对象存储Controller")
@RequestMapping("/oss")
public class OssController {
@Autowired
OssUtils ossUtils;
@PostMapping("upload")
public AjaxResult uploadFile(MultipartFile file) {
//返回上传oss的url
String url = ossUtils.uploadOneFile(file);
AjaxResult ajax = AjaxResult.success();
ajax.put("fileName", file.getOriginalFilename());
ajax.put("url", url);
return ajax;
}
@PostMapping("uploadArrayFile")
public List<String> uploadArrayFile(MultipartFile[] files) {
//返回上传oss的url
return ossUtils.uploadArrayFile(files);
}
@PostMapping("deleteFile")
public boolean deleteFile(@RequestBody String fileUrl) {
//返回是否删除成功
return ossUtils.deleteFile(fileUrl);
}
}

@ -35,3 +35,10 @@ ruoyi:
profile: C:/ruoyi/uploadPath
scheduling:
enabled: false
#操作oss需要的一些参数
aliyun:
accessKeyId: 你的accessKeyId # 阿里云的accessKeyId
secretAccessKey: 你的accessKey密码 # accessKey 密码
oss:
endPoint: 你的endpoint # Endpoint:在阿里云oss控制台查看自己使用的endpoint
bucketName: 你的bucketName # bucket 名称

@ -101,6 +101,11 @@
<artifactId>jaxb-api</artifactId>
</dependency>
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
</dependency>
<!-- redis 缓存操作 -->
<dependency>
<groupId>org.springframework.boot</groupId>

@ -0,0 +1,111 @@
package com.ruoyi.common.utils;
import cn.hutool.core.date.DateTime;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.ruoyi.common.utils.uuid.UUID;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.List;
@Component
public class OssUtils {
@Value("${aliyun.accessKeyId}")
private String accessKeyId;
@Value("${aliyun.secretAccessKey}")
private String secretAccessKey;
@Value("${aliyun.oss.endPoint}")
private String endPoint;
@Value("${aliyun.oss.bucketName}")
private String bucketName;
public String uploadOneFile(MultipartFile file) {
// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endPoint, accessKeyId, secretAccessKey);
//设置文件名
String fileName = new DateTime().toString("yyyy/MM/dd")
+ UUID.randomUUID().toString().replace("-", "")
+ file.getOriginalFilename();
try {
// 创建PutObject请求。
ossClient.putObject(bucketName, fileName, file.getInputStream());
String url = "http://" + bucketName + "." + endPoint + "/" + fileName;
return url;
} catch (Exception e) {
e.printStackTrace();
return null;
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
}
public List<String> uploadArrayFile(MultipartFile[] files) {
// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endPoint, accessKeyId, secretAccessKey);
List<String> list = new ArrayList<>();
try {
//设置文件名
for (MultipartFile file : files) {
String fileName = new DateTime().toString("yyyy/MM/dd")
+ UUID.randomUUID().toString().replace("-", "")
+ file.getOriginalFilename();
// 创建PutObject请求。
ossClient.putObject(bucketName, fileName, file.getInputStream());
String url = "http://" + bucketName + "." + endPoint + "/" + fileName;
// System.out.println(url);
list.add(url);
}
} catch (Exception e) {
e.printStackTrace();
return null;
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
return list;
}
public boolean deleteFile(String fileUrl) {
// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endPoint, accessKeyId, secretAccessKey);
/** ossBucket
* http://edu-czf.oss-cn-guangzhou.aliyuncs.com/2022/08/abc.jpg",
* 2022/08/abc.jpg
*/
int begin = ("http://" + bucketName + "." + endPoint + "/").length(); //找到文件路径的开始下标
String deleteUrl = fileUrl.substring(begin);
try {
// 删除文件请求
ossClient.deleteObject(bucketName, deleteUrl);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
}
}
Loading…
Cancel
Save