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