From bfe84546c6b1664acf3e1a28e0a5fee226f81e23 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Mon, 8 Sep 2025 20:31:57 +0800 Subject: [PATCH] =?UTF-8?q?fix(task):=20=E4=BF=AE=E5=A4=8D=20vlog=E8=A7=86?= =?UTF-8?q?=E9=A2=91=E6=96=87=E4=BB=B6=E5=90=8D=E7=94=9F=E6=88=90=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 使用 MD5 哈希算法生成唯一的文件名前缀,以避免文件名冲突 - 将任务创建时间加入哈希计算,确保即使任务 ID 相同也能生成不同的文件名 - 修改涉及两个代码块,分别处理视频上传和获取视频 URL 的场景 --- .../ycwl/basic/service/task/impl/TaskTaskServiceImpl.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java b/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java index 4043564..9458703 100644 --- a/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java @@ -1,6 +1,7 @@ package com.ycwl.basic.service.task.impl; import cn.hutool.core.date.DateUtil; +import cn.hutool.crypto.digest.MD5; import com.ycwl.basic.utils.JacksonUtil; import com.ycwl.basic.biz.OrderBiz; import com.ycwl.basic.biz.TaskStatusBiz; @@ -479,7 +480,8 @@ public class TaskTaskServiceImpl implements TaskService { } ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(task.getScenicId()); IStorageAdapter adapter = scenicService.getScenicTmpStorageAdapter(task.getScenicId()); - String filename = StorageUtil.joinPath(StorageConstant.VLOG_PATH, task.getId() + "_" + task.getScenicId() + ".mp4"); + String hash = MD5.create().digestHex(task.getId() + "_" + task.getCreateTime().getTime()); + String filename = StorageUtil.joinPath(StorageConstant.VLOG_PATH, hash + "_" + task.getScenicId() + ".mp4"); adapter.setAcl(StorageAcl.PUBLIC_READ, filename); videoReUploader.addVideoTask(video.getId()); int isBuy = 0; @@ -547,7 +549,8 @@ public class TaskTaskServiceImpl implements TaskService { } catch (Exception e) { adapter = scenicService.getScenicStorageAdapter(task.getScenicId()); } - String filename = StorageUtil.joinPath(StorageConstant.VLOG_PATH, task.getId() + "_" + task.getScenicId() + ".mp4"); + String hash = MD5.create().digestHex(task.getId() + "_" + task.getCreateTime().getTime()); + String filename = StorageUtil.joinPath(StorageConstant.VLOG_PATH, hash + "_" + task.getScenicId() + ".mp4"); // 生成 String url = adapter.getUrl(filename); TaskEntity updateTask = new TaskEntity();