|
@@ -4,11 +4,13 @@ import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.io.FileUtil;
|
|
|
import cn.hutool.core.util.IdUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
+import com.aliyun.oss.OSS;
|
|
|
+import com.aliyun.oss.OSSClientBuilder;
|
|
|
+import com.aliyun.oss.model.PutObjectRequest;
|
|
|
import com.jy.framework.config.JyConfig;
|
|
|
import com.jy.framework.config.ObsConfig;
|
|
|
import com.jy.framework.exception.ServiceException;
|
|
|
import com.jy.framework.utils.AssertUtil;
|
|
|
-import com.obs.services.ObsClient;
|
|
|
import jakarta.annotation.Resource;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
@@ -38,11 +40,11 @@ public class FileConfig {
|
|
|
public Map<String, String> uploadFile(@RequestParam("file") MultipartFile file) {
|
|
|
AssertUtil.notEmpty(file, "文件不存在");
|
|
|
|
|
|
- String oriName = file.getOriginalFilename();
|
|
|
- AssertUtil.notBlank(oriName, "文件名为空");
|
|
|
+ String fileName = file.getOriginalFilename();
|
|
|
+ AssertUtil.notBlank(fileName, "文件名为空");
|
|
|
|
|
|
// 文件后缀名
|
|
|
- String suffix = FileUtil.getSuffix(oriName);
|
|
|
+ String suffix = FileUtil.getSuffix(fileName);
|
|
|
|
|
|
// 文件路径
|
|
|
String objectKey = new StringJoiner("/")
|
|
@@ -52,15 +54,28 @@ public class FileConfig {
|
|
|
.add(IdUtil.fastSimpleUUID() + (ObjectUtil.isEmpty(suffix) ? "" : "." + suffix))
|
|
|
.toString();
|
|
|
|
|
|
+ OSS ossClient = getOssClient();
|
|
|
+
|
|
|
// 上传文件
|
|
|
- try (ObsClient obsClient = new ObsClient(obsConfig.getAk(), obsConfig.getSk(), obsConfig.getEndPoint())) {
|
|
|
- obsClient.putObject(obsConfig.getBucketName(), objectKey, file.getInputStream());
|
|
|
+ try {
|
|
|
+ PutObjectRequest putObjectRequest = new PutObjectRequest(obsConfig.getBucketName(), objectKey, file.getInputStream());
|
|
|
+ ossClient.putObject(putObjectRequest);
|
|
|
} catch (Exception e) {
|
|
|
throw new ServiceException("上传失败");
|
|
|
+ } finally {
|
|
|
+ ossClient.shutdown();
|
|
|
}
|
|
|
|
|
|
// 返回文件路径
|
|
|
- return Map.of("name", oriName, "url", obsConfig.getUrl() + objectKey);
|
|
|
+ return Map.of("name", fileName, "url", getUrl() + objectKey);
|
|
|
+ }
|
|
|
+
|
|
|
+ private OSS getOssClient() {
|
|
|
+ return new OSSClientBuilder().build(obsConfig.getEndPoint(), obsConfig.getAk(), obsConfig.getSk());
|
|
|
+ }
|
|
|
+
|
|
|
+ private String getUrl() {
|
|
|
+ return "https://" + obsConfig.getBucketName() + "." + obsConfig.getEndPoint() + "/";
|
|
|
}
|
|
|
|
|
|
}
|