diff --git a/Learn.VideoAnalysis.API/Expand/HttpFilter.cs b/Learn.VideoAnalysis.API/Expand/HttpFilter.cs
index 692d637..e3512e6 100644
--- a/Learn.VideoAnalysis.API/Expand/HttpFilter.cs
+++ b/Learn.VideoAnalysis.API/Expand/HttpFilter.cs
@@ -54,10 +54,25 @@ namespace Learn.VideoAnalysis.API.Expand
///
///
///
- public void ExecutingFileCached(ActionExecutingContext context)
+ public void ExecutingCached(ActionExecutingContext context)
{
//特殊处理:ResultIgnore,不进行返回结果包装,原样输出
var endpoint = context.HttpContext.GetEndpoint();
+ var request = context.HttpContext.Request;
+ // 1. 只有非 GET 请求且不是文件上传时才读取 Body
+ if (!request.Method.Equals("GET", StringComparison.OrdinalIgnoreCase)
+ && !request.HasFormContentType)
+ {
+ // 确保从头开始读
+ request.Body.Position = 0;
+ // 使用 leaveOpen: true 防止 StreamReader 关闭底层的 Request.Body
+ using (var reader = new System.IO.StreamReader(request.Body, System.Text.Encoding.UTF8, detectEncodingFromByteOrderMarks: false, bufferSize: 1024, leaveOpen: true))
+ {
+ var body = reader.ReadToEnd();
+ context.HttpContext.Items["RequestBodyRaw"] = body;
+ request.Body.Position = 0;
+ }
+ }
// 直接返回原始结果,不封装
if (endpoint?.Metadata.GetMetadata() == null) return;
if (context.HttpContext.Request.HasFormContentType &&
@@ -74,6 +89,8 @@ namespace Learn.VideoAnalysis.API.Expand
}).ToArray();
}
+
+
}
///
/// 执行接口前400 处理
@@ -149,54 +166,32 @@ namespace Learn.VideoAnalysis.API.Expand
///
public async Task AddHttpLogAsync(HttpContext context, BaseReturn
public async Task InitChannel()
{
+ Thread.Sleep(1000);
if (Redis is null) throw new Exception("redis未初始化");
//处理之前程序结束前未能执行完的情况
var oldTaskCount = Redis.LLen(RedisExpandKey.IDTask);
diff --git a/VideoAnalysisCore/Controllers/PublicController.cs b/VideoAnalysisCore/Controllers/PublicController.cs
index eb660e4..44cdc02 100644
--- a/VideoAnalysisCore/Controllers/PublicController.cs
+++ b/VideoAnalysisCore/Controllers/PublicController.cs
@@ -13,7 +13,6 @@ namespace VideoAnalysisCore.Controllers
///
/// 通用接口
///
- [Authorize(AuthenticationSchemes = Authentication.vdAdmin)]
[Route("api/[controller]")]
public class PublicController : ControllerBase
{
diff --git a/VideoAnalysisCore/Job/TaskFileClearJob.cs b/VideoAnalysisCore/Job/TaskFileClearJob.cs
index e011188..4fae381 100644
--- a/VideoAnalysisCore/Job/TaskFileClearJob.cs
+++ b/VideoAnalysisCore/Job/TaskFileClearJob.cs
@@ -31,12 +31,12 @@ namespace VideoAnalysisCore.Job
this.videotaskDB = videotaskDB;
this.redisManager = redisManager;
}
- public void DeleteTaskAllCaches()
+ public async Task DeleteTaskAllCachesAsync()
{
- var startTime = -5;
+ var startTime = -2;
var timeSpan = startTime - 999;
- // 计算 6 天前已完成任务缓存
+ // 计算 {startTime} 天前已完成任务缓存
DateTime twoDaysAgo = DateTime.Now.AddDays(startTime);
DateTime endDaysAgo = DateTime.Now.AddDays(timeSpan);
@@ -54,21 +54,7 @@ namespace VideoAnalysisCore.Job
// 遍历查询结果,删除缓存文件
foreach (var taskId in completedTasks)
- {
- var path = taskId.ToString().LocalPath();
- if (!string.IsNullOrEmpty(path) && Directory.Exists(path))
- {
- try
- {
- Directory.Delete(path, true);
- Console.WriteLine($"已删除缓存文件: {taskId}");
- }
- catch (Exception ex)
- {
- Console.WriteLine($"删除缓存文件 {taskId} 时出错: {ex.Message}");
- }
- }
- }
+ await ExpandFunction.DeleteTaskAllFileAsync(taskId, redisManager);
}
public async void DeleteTaskVideoCaches()
{
@@ -105,7 +91,7 @@ namespace VideoAnalysisCore.Job
{
Console.WriteLine($"{DateTime.Now} 执行=>{this.GetType().FullName}");
DeleteTaskVideoCaches();
- DeleteTaskAllCaches();
+ DeleteTaskAllCachesAsync();
}
}
}