生成视频并且上传到minio
This commit is contained in:
@@ -196,7 +196,7 @@ func (s *audioTaskService) processTask(taskID string, urls []string, model, lang
|
||||
g.Log().Infof(ctx, "[任务 %s] 全部处理流程结束", taskID)
|
||||
}
|
||||
|
||||
// callback 向回调地址 POST 任务结果
|
||||
// callback 向回调地址 POST 任务结果(与查询接口 GetTaskRes 出参一致)
|
||||
func (s *audioTaskService) callback(ctx context.Context, taskID, status, errMsg, callbackURL string) {
|
||||
if callbackURL == "" {
|
||||
return
|
||||
@@ -214,27 +214,29 @@ func (s *audioTaskService) callback(ctx context.Context, taskID, status, errMsg,
|
||||
detailItems = append(detailItems, dao.DetailEntityToItem(&detailList[i]))
|
||||
}
|
||||
|
||||
// 构建与查询接口一致的 taskInfo
|
||||
taskInfo := dao.EntityToItem(task)
|
||||
|
||||
// 与查询接口一致:从 result 中补全 scenes 等字段
|
||||
detailItems = enrichDetailsFromResult(task.Result, detailItems)
|
||||
|
||||
payload := dto.CallbackPayload{
|
||||
TaskID: taskID,
|
||||
Status: status,
|
||||
TotalFiles: task.TotalFiles,
|
||||
SuccessFiles: task.SuccessFiles,
|
||||
FailFiles: task.FailFiles,
|
||||
ErrorMessage: errMsg,
|
||||
Result: task.Result,
|
||||
DetailList: detailItems,
|
||||
TaskInfo: taskInfo,
|
||||
DetailList: detailItems,
|
||||
}
|
||||
|
||||
body, _ := json.Marshal(payload)
|
||||
g.Log().Infof(ctx, "[回调 %s] 触发回调, 状态=%s, 成功=%d 失败=%d, 错误=%s, 目标=%s",
|
||||
taskID, status, payload.SuccessFiles, payload.FailFiles, errMsg, callbackURL)
|
||||
taskID, taskInfo.Status, taskInfo.SuccessFiles, taskInfo.FailFiles, errMsg, callbackURL)
|
||||
g.Log().Debugf(ctx, "[回调 %s] 回调载荷长度=%d字节, 明细条数=%d",
|
||||
taskID, len(body), len(detailItems))
|
||||
// 透传调用方的用户信息,供回调方 GetUserInfo 从 X-User-Info 头获取
|
||||
userJSON, _ := json.Marshal(beans.User{UserName: "admin", TenantId: 1})
|
||||
g.Log().Infof(ctx, "[回调 %s] curl -X POST '%s' -H 'Content-Type: application/json' -H 'X-User-Info: %s' -d '%s'",
|
||||
taskID, callbackURL, string(userJSON), strings.ReplaceAll(string(body), "'", "'\\''"))
|
||||
|
||||
req, _ := http.NewRequest("POST", callbackURL, bytes.NewReader(body))
|
||||
req.Header.Set("Content-Type", "application/json")
|
||||
// 透传调用方的用户信息,供回调方 GetUserInfo 从 X-User-Info 头获取
|
||||
userJSON, _ := json.Marshal(beans.User{UserName: "admin", TenantId: 1})
|
||||
req.Header.Set("X-User-Info", string(userJSON))
|
||||
|
||||
resp, reqErr := http.DefaultClient.Do(req)
|
||||
|
||||
Reference in New Issue
Block a user