fix - OSS服务器文件分类更精细

This commit is contained in:
2026-05-19 13:40:33 +08:00
parent f393375dac
commit 44f867a606
15 changed files with 194 additions and 188 deletions

View File

@@ -508,50 +508,50 @@ public class MemberService extends BaseServiceImpl {
@Transactional
@Deprecated
public void setMemberFaceInfo(Integer memberId, MultipartFile file, Integer platformId) {
Date now = new Date();
MemberFaceInfo memberFaceInfo = memberMapper.findMemberFaceInfo(memberId);
if (memberFaceInfo != null) {
//判断上次修改日期 如果小于30天不允许修改
if ((now.getTime() - memberFaceInfo.getModifiedTime().getTime()) <= ((long) 30 * 24 * 60 * 60 * 1000)) {
throw new ServiceException("人脸照片只允许30天设置一次");
}
}
synchronized (("face" + memberId).intern()) {
InputStream inputStream = null;
try {
inputStream = file.getInputStream();
Member member = memberMapper.findById(memberId);
if (member != null) {
String imgUrl = ossClientUtil.uploadImg(new BufferedInputStream(inputStream), file.getOriginalFilename());
logger.info(memberId + "上传oss文件成功." + imgUrl);
Integer subjectId = null;
// if (faceService.login()){
// ByteArrayInputStream byteArrayInputStream = getByteArrayInputStream(file);
// Integer faceId = faceService.uploadFace(byteArrayInputStream);
// logger.info(memberId + "& faceId ===" + faceId);
// subjectId = faceService.addSubject(faceId, member);
// logger.info(memberId + "& subjectId ===" + subjectId);
// }
// if (memberFaceInfo != null) {
// //删除原有的subject
// faceService.deleteSubject(memberFaceInfo.getFaceId());
// }
setMemberFaceInfo(subjectId, imgUrl, memberId, platformId);
}
} catch (FaceServiceException e) {
e.printStackTrace();
throw new ServiceException(e.getMessage());
} catch (Exception e) {
logger.info("unknown error",e);
throw new ServiceException("设置人脸失败,请稍后再试");
}finally {
try {
inputStream.close();
} catch (IOException e) {
// do nothing
}
}
}
// Date now = new Date();
// MemberFaceInfo memberFaceInfo = memberMapper.findMemberFaceInfo(memberId);
// if (memberFaceInfo != null) {
// //判断上次修改日期 如果小于30天不允许修改
// if ((now.getTime() - memberFaceInfo.getModifiedTime().getTime()) <= ((long) 30 * 24 * 60 * 60 * 1000)) {
// throw new ServiceException("人脸照片只允许30天设置一次");
// }
// }
// synchronized (("face" + memberId).intern()) {
// InputStream inputStream = null;
// try {
// inputStream = file.getInputStream();
// Member member = memberMapper.findById(memberId);
// if (member != null) {
// String imgUrl = ossClientUtil.uploadImg(new BufferedInputStream(inputStream), file.getOriginalFilename());
// logger.info(memberId + "上传oss文件成功." + imgUrl);
// Integer subjectId = null;
//// if (faceService.login()){
//// ByteArrayInputStream byteArrayInputStream = getByteArrayInputStream(file);
//// Integer faceId = faceService.uploadFace(byteArrayInputStream);
//// logger.info(memberId + "& faceId ===" + faceId);
//// subjectId = faceService.addSubject(faceId, member);
//// logger.info(memberId + "& subjectId ===" + subjectId);
//// }
//// if (memberFaceInfo != null) {
//// //删除原有的subject
//// faceService.deleteSubject(memberFaceInfo.getFaceId());
//// }
// setMemberFaceInfo(subjectId, imgUrl, memberId, platformId);
// }
// } catch (FaceServiceException e) {
// e.printStackTrace();
// throw new ServiceException(e.getMessage());
// } catch (Exception e) {
// logger.info("unknown error",e);
// throw new ServiceException("设置人脸失败,请稍后再试");
// }finally {
// try {
// inputStream.close();
// } catch (IOException e) {
// // do nothing
// }
// }
// }
}
// 将文件中流转换为字节数组,通过缓存数据的方式转换防止内存溢出

View File

@@ -52,8 +52,12 @@ public class OSSClientUtil {
//文件存储目录
@Value("${sv.file.store.image}")
private String imageDir;
@Value("${sv.file.store.video}")
private String videoDir;
@Value("${sv.file.store.coach}")
private String coachDir;
@Value("${sv.file.store.config}")
private String configDir;
@Value("${sv.file.store.barcode}")
private String barcodeDir;
@Value("${sv.file.store.health}")
private String healthDir;
@@ -62,12 +66,6 @@ public class OSSClientUtil {
private OSSClient ossClient;
public String upload(String filename, InputStream file) {
return uploadImg(file, filename);
}
/**
* 上传图片
*
@@ -76,17 +74,22 @@ public class OSSClientUtil {
*/
public String uploadImg(MultipartFile file) throws IOException {
String originalFilename = file.getOriginalFilename();
return uploadImg(file.getInputStream(), originalFilename);
return uploadImg(file.getInputStream(), originalFilename, imageDir);
}
public String uploadImg(InputStream inputStream, String originalFilename) {
public String uploadConfigImg(MultipartFile file) throws IOException {
String originalFilename = file.getOriginalFilename();
return uploadImg(file.getInputStream(), originalFilename, configDir);
}
public String uploadImg(InputStream inputStream, String originalFilename,String path) {
String backUrl = "";
try {
ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
String substring = originalFilename.substring(originalFilename.lastIndexOf(".")).toLowerCase();
Random random = new Random();
String name = random.nextInt(10000) + System.currentTimeMillis() + substring;
backUrl = imageDir + name;
backUrl = path + name;
// 上传文件
ossClient.putObject(bucketName, backUrl, inputStream);
ossClient.setObjectAcl(bucketName, backUrl, CannedAccessControlList.PublicRead);
@@ -154,35 +157,35 @@ public class OSSClientUtil {
* @param file
* @return
*/
public String uploadVideo(MultipartFile file) {
String backUrl = "";
try {
ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
String originalFilename = file.getOriginalFilename();
String substring = originalFilename.substring(originalFilename.lastIndexOf(".")).toLowerCase();
Random random = new Random();
String name = random.nextInt(10000) + System.currentTimeMillis() + substring;
backUrl = videoDir + name;
// 上传文件
ossClient.putObject(bucketName, backUrl, file.getInputStream());
ossClient.setObjectAcl(bucketName, backUrl, CannedAccessControlList.PublicRead);
// 判断是否上传成功
boolean uploadResult = ossClient.doesObjectExist(bucketName, backUrl);
if (uploadResult) {
backUrl = getVideoUrl(name);
} else {
backUrl = "";
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
return backUrl;
}
// public String uploadVideo(MultipartFile file) {
// String backUrl = "";
// try {
// ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
// String originalFilename = file.getOriginalFilename();
// String substring = originalFilename.substring(originalFilename.lastIndexOf(".")).toLowerCase();
// Random random = new Random();
// String name = random.nextInt(10000) + System.currentTimeMillis() + substring;
// backUrl = videoDir + name;
// // 上传文件
// ossClient.putObject(bucketName, backUrl, file.getInputStream());
// ossClient.setObjectAcl(bucketName, backUrl, CannedAccessControlList.PublicRead);
// // 判断是否上传成功
// boolean uploadResult = ossClient.doesObjectExist(bucketName, backUrl);
//
// if (uploadResult) {
// backUrl = getVideoUrl(name);
// } else {
// backUrl = "";
// }
// } catch (IOException e) {
// e.printStackTrace();
// } finally {
// if (ossClient != null) {
// ossClient.shutdown();
// }
// }
// return backUrl;
// }
/**
@@ -199,19 +202,19 @@ public class OSSClientUtil {
return null;
}
/**
* 获得视频路径
*
* @param fileUrl
* @return
*/
public String getVideoUrl(String fileUrl) {
if (!StringUtils.isEmpty(fileUrl)) {
String[] split = fileUrl.split("/");
return url + this.videoDir + split[split.length - 1];
}
return null;
}
// /**
// * 获得视频路径
// *
// * @param fileUrl
// * @return
// */
// public String getVideoUrl(String fileUrl) {
// if (!StringUtils.isEmpty(fileUrl)) {
// String[] split = fileUrl.split("/");
// return url + this.videoDir + split[split.length - 1];
// }
// return null;
// }
public String getProtocol() {
@@ -270,14 +273,6 @@ public class OSSClientUtil {
this.ossClient = ossClient;
}
public String getVideoDir() {
return videoDir;
}
public void setVideoDir(String videoDir) {
this.videoDir = videoDir;
}
public String getUrl() {
return url;
}
@@ -286,4 +281,43 @@ public class OSSClientUtil {
this.url = url;
}
public Log getLog() {
return log;
}
public void setLog(Log log) {
this.log = log;
}
public String getCoachDir() {
return coachDir;
}
public void setCoachDir(String coachDir) {
this.coachDir = coachDir;
}
public String getConfigDir() {
return configDir;
}
public void setConfigDir(String configDir) {
this.configDir = configDir;
}
public String getBarcodeDir() {
return barcodeDir;
}
public void setBarcodeDir(String barcodeDir) {
this.barcodeDir = barcodeDir;
}
public String getHealthDir() {
return healthDir;
}
public void setHealthDir(String healthDir) {
this.healthDir = healthDir;
}
}

View File

@@ -65,7 +65,7 @@ public class CoachService extends BaseServiceImpl {
Platform platform = platformService.findById(1);
coachMapper.insert(coach);
InputStream inputStream = WxXCXService.getNewInstance(platform.getAppId(), platform.getSecret(), "wx_xcx_token", cacheService).getXCXQrCode("pages/myBookings/index", coach.getId().toString(), "190");
String url = ossClientUtil.uploadImg(inputStream, "qrcode.png");
String url = ossClientUtil.uploadImg(inputStream, "qrcode.png",ossClientUtil.getCoachDir());
coach.setQrCode(url);
coachMapper.update(coach);
}

View File

@@ -99,7 +99,7 @@ public class VenueLessonService extends BaseServiceImpl {
Platform platform = platformService.findById(1);
venueLessonMapper.insert(venueLesson);
InputStream inputStream = WxXCXService.getNewInstance(platform.getAppId(), platform.getSecret(),"wx_xcx_token",cacheService).getXCXQrCode("pages/myBookings/index",venueLesson.getId().toString(),"190");
String url = ossClientUtil.uploadImg(inputStream,"qrcode.png");
String url = ossClientUtil.uploadImg(inputStream,"qrcode.png", ossClientUtil.getBarcodeDir());
venueLesson.setQrCode(url);
venueLessonMapper.update(venueLesson);

View File

@@ -204,7 +204,7 @@ public class VenueService extends BaseServiceImpl {
}else {
inputStream = WxXCXService.getNewInstance(platform.getAppId(), platform.getSecret(), "wx_xcx_token", cacheService).getXCXQrCode("pages/gymnasium/index", venueId.toString(), "1280");
}
String url = ossClientUtil.uploadImg(inputStream, "qrcode.png");
String url = ossClientUtil.uploadImg(inputStream, "qrcode.png",ossClientUtil.getBarcodeDir());
venue.setCodeUrl(url);
venueMapper.update(venue);
}