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

@@ -114,12 +114,12 @@ public class MemberController extends BaseApiController {
* @param file
* @return
*/
@RequestMapping(value = "/member/face/info", method = RequestMethod.POST)
@AccessToken
public ResponseDTO setMemberFaceInfo(@RequestParam("image") MultipartFile file) {
memberService.setMemberFaceInfo(getLoginMemberId(), file, PlatformContext.getValue());
return ResponseDTO.ok();
}
// @RequestMapping(value = "/member/face/info", method = RequestMethod.POST)
// @AccessToken
// public ResponseDTO setMemberFaceInfo(@RequestParam("image") MultipartFile file) {
// memberService.setMemberFaceInfo(getLoginMemberId(), file, PlatformContext.getValue());
// return ResponseDTO.ok();
// }
/**
* 提现申请

View File

@@ -195,17 +195,17 @@ public class LoginRegisterServiceImpl extends BaseServiceImpl {
}
//将微信头像上传到OSS
public String updateWxImgToOss(String avatar) throws IOException {
CloseableHttpClient client = HttpClientBuilder.create().build();
HttpGet httpget = new HttpGet(avatar);
RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(1000).setConnectTimeout(1200).build();
httpget.setConfig(requestConfig);
HttpResponse response = null;
response = client.execute(httpget);
HttpEntity resEntity = response.getEntity();
InputStream inputStream = resEntity.getContent();
return ossClientUtil.upload(System.currentTimeMillis() + ".png", inputStream);
}
// public String updateWxImgToOss(String avatar) throws IOException {
// CloseableHttpClient client = HttpClientBuilder.create().build();
// HttpGet httpget = new HttpGet(avatar);
// RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(1000).setConnectTimeout(1200).build();
// httpget.setConfig(requestConfig);
// HttpResponse response = null;
// response = client.execute(httpget);
// HttpEntity resEntity = response.getEntity();
// InputStream inputStream = resEntity.getContent();
// return ossClientUtil.upload(System.currentTimeMillis() + ".png", inputStream);
// }
/**
*

View File

@@ -23,5 +23,7 @@ sv:
file:
store:
image: imagetest/
video: videotest/
coach: coachtest/
config: configtest/
barcode: barcodetest/
health: health-docstest/

View File

@@ -16,5 +16,7 @@ sv:
file:
store:
image: image/
video: video/
coach: coach/
config: config/
barcode: barcode/
health: health-docs/

View File

@@ -1,13 +0,0 @@
spring:
datasource:
url: jdbc:mysql://yingdiandian.mysql.rds.aliyuncs.com:3306/smart_venue?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&serverTimezone=GMT%2b8
username: yingdd
password: Yingdd2015
redis:
host: 121.41.101.63
password: yingdiandian2015
timeout: 6000
port: 6379
jpa:
show-sql: true

View File

@@ -114,15 +114,15 @@ public class MemberController extends OmsController {
* @param file
* @return
*/
@RequestMapping(value = "/member/upload/face", method = RequestMethod.POST)
public ResponseDTO uploadFace(@RequestParam("memberId") Integer memberId, @RequestParam("file") MultipartFile file) {
try {
memberService.setMemberFaceInfo(memberId, file, 1);
} catch (ServiceException e) {
return new ResponseDTO(-1, e.getMessage());
}
return ResponseDTO.ok();
}
// @RequestMapping(value = "/member/upload/face", method = RequestMethod.POST)
// public ResponseDTO uploadFace(@RequestParam("memberId") Integer memberId, @RequestParam("file") MultipartFile file) {
// try {
// memberService.setMemberFaceInfo(memberId, file, 1);
// } catch (ServiceException e) {
// return new ResponseDTO(-1, e.getMessage());
// }
//
// return ResponseDTO.ok();
// }
}

View File

@@ -24,7 +24,7 @@ public class UploadController extends OmsController {
@RequestMapping("/image")
public ResponseDTO uploadImg(@RequestParam("file") MultipartFile file) throws IOException {
String imgUrl = ossClientUtil.uploadImg(file);
String imgUrl = ossClientUtil.uploadConfigImg(file);
return ResponseDTO.ok().addAttribute("img",imgUrl);
}
@@ -32,23 +32,23 @@ public class UploadController extends OmsController {
* 上传图片到阿里云
* @return
*/
@RequestMapping(value = "/uploadImg")
public ResponseDTO uploadImage(MultipartFile file) throws IOException {
String imgUrl = ossClientUtil.uploadImg(file);
return ResponseDTO.ok(imgUrl);
}
// @RequestMapping(value = "/uploadImg")
// public ResponseDTO uploadImage(MultipartFile file) throws IOException {
// String imgUrl = ossClientUtil.uploadImg(file);
// return ResponseDTO.ok(imgUrl);
//
//
// }
/**
* 上传视频到阿里云
* @return
*/
@RequestMapping(value = "/uploadVideo")
public ResponseDTO uploadVideo(@RequestParam("video") MultipartFile multipartFile){
String videoUrl = ossClientUtil.uploadVideo(multipartFile);
return ResponseDTO.ok(videoUrl);
}
// @RequestMapping(value = "/uploadVideo")
// public ResponseDTO uploadVideo(@RequestParam("video") MultipartFile multipartFile){
// String videoUrl = ossClientUtil.uploadVideo(multipartFile);
// return ResponseDTO.ok(videoUrl);
// }
/**
* 上传健康报告到阿里云

View File

@@ -19,5 +19,7 @@ sv:
file:
store:
image: imagetest/
video: videotest/
coach: coachtest/
config: configtest/
barcode: barcodetest/
health: health-docstest/

View File

@@ -16,5 +16,7 @@ sv:
file:
store:
image: image/
video: video/
coach: coach/
config: config/
barcode: barcode/
health: health-docs/

View File

@@ -1,23 +0,0 @@
spring:
datasource:
# url: jdbc:mysql://yingdiandian.mysql.rds.aliyuncs.com:3306/smart_venue?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&serverTimezone=GMT%2b8
# username: yingdd
# password: Yingdd2015
url: jdbc:mysql://127.0.0.1:3306/smart_venue?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&serverTimezone=GMT%2b8&useAffectedRows=true
username: root
password: 123456
redis:
host: 127.0.0.1
password:
timeout: 6000
port: 6379
jpa:
show-sql: true
sv:
file:
store:
image: imagetest/
video: videotest/
health: health-docstest/

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);
}