소스 검색

优化分块上传(腾讯云)

tsurumure 4 달 전
부모
커밋
2cec0313a3

+ 9 - 0
src/main/java/com/backendsys/modules/upload/controller/SysFileController.java

@@ -52,6 +52,15 @@ public class SysFileController {
         return Result.success().put("data", sysFileService.selectUploadFileList(sysFile));
     }
 
+    @Operation(summary = "查看当前上传存储介质")
+    @PreAuthorize("@sr.hasPermission('1.1.2')")
+    @GetMapping("/api/upload/getUploadTarget")
+    public Result getUploadTarget(@Validated SysFile sysFile) {
+        return Result.success().put("data", sysFileService.selectUploadTarget());
+    }
+
+
+
     @SysLog("上传文件 (普通上传)")
     @Operation(summary = "上传文件 (普通上传,单文件上传不超过 100MB)")
     @PreAuthorize("@sr.hasPermission('1.1.3')")

+ 12 - 0
src/main/java/com/backendsys/modules/upload/enums/StyleEnums.java

@@ -15,4 +15,16 @@ public enum StyleEnums {
     StyleEnums(String value) {
         this.value = value;
     }
+
+    // 新增一个静态方法,根据整数返回对应的枚举值
+    public static String targetToLabel(int value) {
+        switch (value) {
+            case -1: return "本地";
+            case 1: return "腾讯云";
+            case 2: return "阿里云";
+            case 3: return "抖音云";
+            default:
+                throw new IllegalArgumentException("Invalid code: " + value);
+        }
+    }
 }

+ 1 - 0
src/main/java/com/backendsys/modules/upload/service/SysFileService.java

@@ -12,6 +12,7 @@ public interface SysFileService extends IService<SysFile> {
 
     // 获取文件列表
     PageEntity selectUploadFileList(SysFile sysFile);
+    Map<String, Object> selectUploadTarget();
 
     // 上传文件 (单文件大小不超过 n)
     SysFile uploadSmall(MultipartFile file, Long category_id);

+ 3 - 2
src/main/java/com/backendsys/modules/upload/service/impl/SysFileMultipartServiceImpl.java

@@ -216,18 +216,19 @@ public class SysFileMultipartServiceImpl implements SysFileMultipartService {
                 throw new CustException("分块索引异常,请重新上传");
             }
 
-            // 合并分块
+            // [腾讯云] 合并分块
             CompleteMultipartUploadResult completeResult = tencentCosService.completeMultipartUpload(upload_id, sysFileEntity.getObject_key(), etags);
             if (completeResult == null) throw new CustException("合并失败");
 
+            // 拼接图片路径
             String url = ACCESSIBLE_DOMAIN + "/" + completeResult.getKey();
             sysFileEntity.setUrl(url);
+            sysFileEntity.setRequest_id(completeResult.getRequestId());
 
             // 设置封面
             setThumbUrl(sysFileEntity, UPLOAD_THUMB_SIZE.get(), UPLOAD_THUMB_SIZE.get(), StyleEnums.THUMB_BACKGROUND.getValue());
 
             // [db] 更新分块记录
-            sysFileEntity.setRequest_id(completeResult.getRequestId());
             sysFileDao.updateCompleteFile(sysFileEntity);
 
             Map<String, Object> resp = new LinkedHashMap<>();

+ 11 - 0
src/main/java/com/backendsys/modules/upload/service/impl/SysFileServiceImpl.java

@@ -30,6 +30,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
 import java.util.Arrays;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.CompletableFuture;
@@ -96,6 +97,16 @@ public class SysFileServiceImpl extends ServiceImpl<SysFileDao, SysFile> impleme
         return new PageInfoResult(sysFileList).toEntity();
     }
 
+    @Override
+    public Map<String, Object> selectUploadTarget() {
+        Integer UPLOAD_TARGET = Convert.toInt(sysCommonService.getCommonByTag("UPLOAD_TARGET"));
+        String target_label = StyleEnums.targetToLabel(UPLOAD_TARGET);
+        Map<String, Object> resp = new LinkedHashMap<>();
+        resp.put("target", UPLOAD_TARGET);
+        resp.put("target_label", target_label);
+        return resp;
+    }
+
     // [方法] 上传事件
     private SysFile uploadEvent(MultipartFile multipartFile, Long category_id, Integer target) {
         try {

+ 0 - 12
src/main/resources/mapper/upload/SysFileDao.xml

@@ -81,17 +81,5 @@
         <if test="url_thumb != null and url_thumb != ''">, url_thumb = #{url_thumb}</if>
         WHERE id = #{id}
     </update>
-    <!--
-    <update id="updateAiivhMakeBroadcastAudio" parameterType="java.util.LinkedHashMap"
-        useGeneratedKeys="true" keyProperty="task_id">
-        UPDATE ai_ivh_make_broadcast_audio_task
-        SET task_status = #{task_status}
-        <if test="task_reason != null and task_reason != ''">, task_reason = #{task_reason}</if>
-        <if test="result_media_url != null and result_media_url != ''">, result_media_url = #{result_media_url}</if>
-        <if test="result_media_duration != null and result_media_duration != ''">, result_media_duration = #{result_media_duration}</if>
-        <if test="result_subitles_url != null and result_subitles_url != ''">, result_subitles_url = #{result_subitles_url}</if>
-        WHERE task_id = #{task_id}
-    </update>
-    -->
 
 </mapper>