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