From b8e3169977648d75a47aae91d124a12788c17d0e Mon Sep 17 00:00:00 2001 From: tangwenkang <2720983602@qq.com> Date: Mon, 6 Nov 2023 20:59:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A4=E6=96=AD=E6=98=AF=E5=90=A6=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- health-video-server/pom.xml | 5 ++++- .../video/server/service/impl/VideoServiceImpl.java | 8 ++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/health-video-server/pom.xml b/health-video-server/pom.xml index a28e433..310e5e6 100644 --- a/health-video-server/pom.xml +++ b/health-video-server/pom.xml @@ -151,7 +151,10 @@ 3.16.0 - + + org.springframework.boot + spring-boot-starter-data-redis + diff --git a/health-video-server/src/main/java/com/health/video/server/service/impl/VideoServiceImpl.java b/health-video-server/src/main/java/com/health/video/server/service/impl/VideoServiceImpl.java index f0d2f40..8cc74b7 100644 --- a/health-video-server/src/main/java/com/health/video/server/service/impl/VideoServiceImpl.java +++ b/health-video-server/src/main/java/com/health/video/server/service/impl/VideoServiceImpl.java @@ -30,6 +30,7 @@ import org.springframework.amqp.core.MessageDeliveryMode; import org.springframework.amqp.rabbit.core.RabbitTemplate; import com.health.video.server.utils.DogeUtil; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; @@ -58,6 +59,8 @@ public class VideoServiceImpl implements VideoService { private RedissonClient redissonClient; @Autowired private RemoteWalletService remoteWalletService; + @Autowired + private RedisTemplate redisTemplate; /** * 查询视频类型列表 @@ -253,6 +256,11 @@ public class VideoServiceImpl implements VideoService { File localFile = new File(filePath); // 计算文件的 SHA-256 哈希值(比MD5加密更安全) String fileMD5 = calculateFileSHA256(localFile); + // 把文件存入redis记录30秒 30秒内不能重复上传视频 + redisTemplate.opsForValue().set(fileMD5, String.valueOf(localFile),30,TimeUnit.SECONDS); + if(redisTemplate.hasKey(fileMD5)){ + throw new RuntimeException("请不要重复上传视频!"); + } System.out.println("SHA-256加密内容为:"+fileMD5); // 检查目录是否存在,如果不存在则创建 File localDirectory = localFile.getParentFile();