项目集成华为obs查看波形文件

This commit is contained in:
2023-03-08 10:31:36 +08:00
parent 280dfbad29
commit ad044fc2b2
31 changed files with 558 additions and 1506 deletions

View File

@@ -0,0 +1,102 @@
package com.njcn.oss.utils;
import com.njcn.common.config.GeneralInfo;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.huawei.obs.util.OBSUtil;
import com.njcn.minioss.bo.MinIoUploadResDTO;
import com.njcn.minioss.config.MinIoProperties;
import com.njcn.minioss.util.MinIoUtils;
import com.njcn.oss.constant.GeneralConstant;
import com.njcn.oss.constant.OssPath;
import com.njcn.oss.enums.OssResponseEnum;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
/**
* @author hongawen
* @version 1.0.0
* @date 2023年03月07日 22:24
*/
@Slf4j
@Component
@RequiredArgsConstructor
public class FileStorageUtil {
private final GeneralInfo generalInfo;
/***
* 华为文件服务器工具类
* 若有方法需求或方法不满足去私有仓库下载huawei-obs-springboot-starter模块进行二次开发
* 开发完毕后需deploy到maven私有仓库
*/
private final OBSUtil obsUtil;
/***
* 免费开源Minioss文件服务器工具类
* 若有方法需求或方法不满足去私有仓库下载minioss-springboot-starter模块进行二次开发
* 开发完毕后需deploy到maven私有仓库
*/
private final MinIoUtils minIoUtils;
private final MinIoProperties minIoProperties;
/***
* 上传MultipartFile文件
* @author hongawen
* @date 2023/3/7 22:48
* @param multipartFile 文件源
* @param dir 服务器文件存放路径
*/
public String uploadMultipart(MultipartFile multipartFile, String dir) {
String filePath;
if (generalInfo.getBusinessFileStorage() == GeneralConstant.HUAWEI_OBS) {
filePath = dir + minIoUtils.minFileName(multipartFile.getOriginalFilename());
obsUtil.multiFileUpload(multipartFile, filePath);
} else {
try {
//把名称存入数据
MinIoUploadResDTO minIoUploadResDTO = minIoUtils.upload(multipartFile, minIoProperties.getBucket(), dir);
filePath = minIoUploadResDTO.getMinFileName();
} catch (Exception e) {
throw new BusinessException(OssResponseEnum.UPLOAD_FILE_ERROR);
}
}
return filePath;
}
/***
* 根据文件路径获取文件短期的一个url
* @author hongawen
* @date 2023/3/7 23:04
* @param filePath 文件在服务器的路径
*/
public String getFileUrl(String filePath){
String url;
if (generalInfo.getBusinessFileStorage() == GeneralConstant.HUAWEI_OBS) {
url = obsUtil.getFileUrl(filePath);
} else {
url = minIoUtils.getObjectUrl(minIoProperties.getBucket(), filePath, 7 * 24 * 60 * 60);
}
return url;
}
/***
* 根据文件路径删除指定文件对象
* @author hongawen
* @date 2023/3/8 9:25
* @param fileName 文件路径名
*/
public void deleteFile(String fileName){
if (generalInfo.getBusinessFileStorage() == GeneralConstant.HUAWEI_OBS) {
obsUtil.delete(fileName);
}else{
minIoUtils.removeObject(minIoProperties.getBucket(), fileName);
}
}
}