feat(chaos): 实现视频分片上传和后台处理功能- 新增视频上传相关控制器、服务接口和实现类

- 实现了视频分片上传、合并和后台处理的逻辑
- 添加了 RabbitMQ 消息队列配置和消息转换器
-优化了 JWT 认证过滤器和日志记录
- 新增了跨域配置
This commit is contained in:
Chaos
2025-07-20 07:17:30 +08:00
parent 287394e8f5
commit 3683a9d8e0
23 changed files with 916 additions and 7 deletions

View File

@@ -0,0 +1,45 @@
package cn.nopj.chaos_api.service;
import java.io.IOException;
import java.util.Map;
public interface VideoFileUploadService {
/**
* 初始化上传
* @param fileName 文件名
* @param totalSize 文件大小
* @return 上传信息
*/
Map<String, Object> initUpload(String fileName, long totalSize);
/**
* 上传分片
* @param uploadId 上传ID
* @param chunkIndex 分片索引
* @param bytes 分片内容
* @throws IOException IO 异常
*/
void uploadChunk(String uploadId, int chunkIndex, byte[] bytes) throws IOException;
/**
* 合并并处理上传的文件
* @param uploadId 上传ID
* @param fileName 文件名
* @throws IOException IO 异常
*/
void mergeAndProcess(String uploadId, String fileName) throws IOException;
/**
* 将处理结果推送到MQ
* @param filePath 文件路径
* @param uploadId 上传ID
*/
void pushResultToMQ(String filePath,String uploadId);
/**
* 将处理结果推送到MQ
* @param filePath 文件路径
*/
void pushResultToMQ(String filePath);
}

View File

@@ -0,0 +1,24 @@
package cn.nopj.chaos_api.service;
import cn.nopj.chaos_api.dto.VideoTaskPayload;
import java.io.IOException;
public interface VideoProcessingService {
/**
* 监听视频处理任务
*
* @param payload 视频处理任务负载
*/
void listenForVideoTasks(VideoTaskPayload payload);
/**
* 处理视频
*
* @param sourceFilePath 源视频文件路径
* @param uploadId 上传ID
*/
void processVideo(String sourceFilePath, String uploadId);
}