From 3df8c0bb68eb5f3ae477abd5a45700b856c48b9d Mon Sep 17 00:00:00 2001 From: 胡仁荣 <897853850@qq.com> Date: 星期四, 24 八月 2023 10:56:24 +0800 Subject: [PATCH] oss分块上传 --- src/main/java/com/qxueyou/scc/controller/HweiYunOBSController.java | 36 +++++++++++++++-- src/main/java/com/qxueyou/scc/base/model/CacheConstants.java | 77 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 108 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/qxueyou/scc/base/model/CacheConstants.java b/src/main/java/com/qxueyou/scc/base/model/CacheConstants.java index b49ea70..82bceed 100644 --- a/src/main/java/com/qxueyou/scc/base/model/CacheConstants.java +++ b/src/main/java/com/qxueyou/scc/base/model/CacheConstants.java @@ -1,6 +1,10 @@ package com.qxueyou.scc.base.model; +import com.qxueyou.scc.base.util.CollectionUtils; + +import java.util.Map; + /** * 缂撳瓨甯搁噺瀹炰綋绫� * @author ody.yuan @@ -12,6 +16,28 @@ * 2. * */ public static final int CACHE_MODULE_H5_ORG_INFO = 1 ; + + public static String GUANGXI_ACQUIESCE = "guangxi/acquiesce/"; + /** + * 鍗庝负浜慜BS鍥剧墖鏂囦欢澶硅矾寰� + */ + public static String GUANGXI_IMG = "guangxi/img/"; + /** + * 鍗庝负浜慜BS瑙嗛鏂囦欢澶硅矾寰� + */ + public static String GUANGXI_VIDEO = "guangxi/video/"; + /** + * 鍗庝负浜慜BS鏂囨。鏂囦欢澶硅矾寰� + */ + public static String GUANGXI_DOCUMENT = "guangxi/document/"; + /** + * 鍗庝负浜慜BS闊抽鏂囦欢澶硅矾寰� + */ + public static String GUANGXI_AUDIO = "guangxi/audio/"; + /** + * 鏅烘収浜戣矾婕斿崕涓轰簯OBS鍘嬬缉鍖呮枃浠跺す璺緞 + */ + public static String GUANGXI_PACKAGE = "guangxi/package/"; /** 鎵嬫満鐭俊鏈�灏忛棿闅旀椂闂�-缂撳瓨鍓嶇紑 */ public static final String SMS_MB_MIN_INTERVAL_PREFIX = "SMS_MB_MIN_INTERVAL_"; @@ -203,4 +229,55 @@ /** 鏈嶅姟灞傜紦瀛樼┖闂� 缂撳瓨鍓嶇紑*/ public static final String QXY_SERVICE_CACHE_NS ="QXU_SERVICE_CACHE_NS_"; + //鏀寔鐨勮棰戞牸寮� + public static Map<String, String> fileFormatMap = CollectionUtils.newStringMap( +//鏀寔鐨勮棰戞牸寮� + "MPEG", GUANGXI_VIDEO, + "AVI", GUANGXI_VIDEO, + "MOV", GUANGXI_VIDEO, + "ASF", GUANGXI_VIDEO, + "WMV", GUANGXI_VIDEO, + "NAVI", GUANGXI_VIDEO, + "3GP", GUANGXI_VIDEO, + "RAM", GUANGXI_VIDEO, + "RA", GUANGXI_VIDEO, + "MKV", GUANGXI_VIDEO, + "F4V", GUANGXI_VIDEO, + "RMVB", GUANGXI_VIDEO, + "MP4", GUANGXI_VIDEO, + "FLV", GUANGXI_VIDEO, + "AVCHD", GUANGXI_VIDEO, + "MKV", GUANGXI_VIDEO, + "WEBM", GUANGXI_VIDEO, +//鏀寔鐨勬枃妗f牸寮� + "DOC", GUANGXI_DOCUMENT, + "DOCX", GUANGXI_DOCUMENT, + "PDF", GUANGXI_DOCUMENT, + "PPT", GUANGXI_DOCUMENT, + "PPTX", GUANGXI_DOCUMENT, + "XLS", GUANGXI_DOCUMENT, + "XLSX", GUANGXI_DOCUMENT, +//鏀寔鐨勯煶棰戞牸寮� + "MP3", GUANGXI_AUDIO, + "WMA", GUANGXI_AUDIO, + "WAV", GUANGXI_AUDIO, + "PCM", GUANGXI_AUDIO, + "AIFF", GUANGXI_AUDIO, + "AAC", GUANGXI_AUDIO, + "OGG", GUANGXI_AUDIO, + "FLAC", GUANGXI_AUDIO, + "ALAC", GUANGXI_AUDIO, +//鏀寔鐨勫浘鐗囨牸寮� + "JPG", GUANGXI_IMG, + "GIF", GUANGXI_IMG, + "BMP", GUANGXI_IMG, + "TIFF", GUANGXI_IMG, + "WEBP", GUANGXI_IMG, + "PNG", GUANGXI_IMG, +//鏀寔鐨勫帇缂╁寘鏍煎紡 + "RAR", GUANGXI_PACKAGE, + "ZIP", GUANGXI_PACKAGE, + "ARJ", GUANGXI_PACKAGE, + "JAR", GUANGXI_PACKAGE + ); } diff --git a/src/main/java/com/qxueyou/scc/controller/HweiYunOBSController.java b/src/main/java/com/qxueyou/scc/controller/HweiYunOBSController.java index 9c8516a..d076b5e 100644 --- a/src/main/java/com/qxueyou/scc/controller/HweiYunOBSController.java +++ b/src/main/java/com/qxueyou/scc/controller/HweiYunOBSController.java @@ -9,9 +9,11 @@ import com.aliyun.oss.OSSException; import com.obs.services.exception.ObsException; import com.obs.services.model.PutObjectResult; +import com.qxueyou.scc.base.model.CacheConstants; import com.qxueyou.scc.base.model.FileMeta; import com.qxueyou.scc.base.model.Result; import com.qxueyou.scc.base.util.ClientUtils; +import com.qxueyou.scc.base.util.UUIDUtils; import com.qxueyou.scc.teach.res.service.HweiYunOBSService; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; @@ -28,6 +30,7 @@ import java.io.InputStream; import java.net.URLEncoder; import java.util.List; +import java.util.Locale; import java.util.Map; /** @@ -51,10 +54,21 @@ if (ObjectUtils.isEmpty(file) || file.getSize() <= 0) { return null; } -// if (FileUtil.isEmpty(file)) { -// return new Result(false,"鏂囦欢涓虹┖"); -// } - final List<FileMeta> test = hweiYunOBSService.fileUpload(file, file.getOriginalFilename()); + String originalFilename = file.getOriginalFilename(); + String substring = originalFilename.substring(originalFilename.indexOf(".")+1); + + StringBuffer path=new StringBuffer(); + //璇嗗埆鏂囦欢鍚庣紑鏍煎紡锛岃幏鍙栧搴旂殑鏂囦欢瀛樺偍璺緞 + String pathFile = CacheConstants.fileFormatMap.get(substring.toUpperCase(Locale.ROOT)); + if (StringUtils.isEmpty(pathFile)) {//濡傛灉涓虹┖鍒欎笂浼犲埌榛樿瀛樺偍鏂囦欢澶� + path.append(CacheConstants.GUANGXI_ACQUIESCE); + }else{ + path.append(pathFile); + } + String uuid = UUIDUtils.UUID(); + //灏嗘枃浠堕噸鏂板懡鍚嶏紝闃叉鍑虹幇閲嶅悕瑕嗙洊 + String newFilename=uuid.concat(file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."))); + final List<FileMeta> test = hweiYunOBSService.fileUpload(file,path.append(newFilename).toString()); // return ResponseVO.ok("鎵ц鎴愬姛",test); return test; } @@ -112,8 +126,20 @@ //濡傛灉MD5鐨勫搴旀枃浠跺瓨鍦ㄥ垯鐩存帴杩斿洖 // Result result = fileService.checkMd5(md5,fileName); + String substring = fileName.substring(fileName.indexOf(".")+1); - return hweiYunOBSService.initUploadChunk(identifier.concat(ClientUtils.getUserId()), fileName,md5); + StringBuffer path=new StringBuffer(); + //璇嗗埆鏂囦欢鍚庣紑鏍煎紡锛岃幏鍙栧搴旂殑鏂囦欢瀛樺偍璺緞 + String pathFile = CacheConstants.fileFormatMap.get(substring.toUpperCase(Locale.ROOT)); + if (StringUtils.isEmpty(pathFile)) {//濡傛灉涓虹┖鍒欎笂浼犲埌榛樿瀛樺偍鏂囦欢澶� + path.append(CacheConstants.GUANGXI_ACQUIESCE); + }else{ + path.append(pathFile); + } + String uuid = UUIDUtils.UUID(); + //灏嗘枃浠堕噸鏂板懡鍚嶏紝闃叉鍑虹幇閲嶅悕瑕嗙洊 + String newFilename=uuid.concat(String.valueOf(fileName.lastIndexOf("."))); + return hweiYunOBSService.initUploadChunk(identifier.concat(ClientUtils.getUserId()),path.append(newFilename).toString(),md5); } -- Gitblit v1.8.0