MCPcopy Create free account
hub / github.com/53AI/53AIHub / createLightweightUploadRecord

Method createLightweightUploadRecord

api/service/file_processor.go:437–478  ·  view source on GitHub ↗

createLightweightUploadRecord 为轻量级文件创建上传记录(不保存原始文件)

(task *UploadTask)

Source from the content-addressed store, hash-verified

435
436// createLightweightUploadRecord 为轻量级文件创建上传记录(不保存原始文件)
437func (fp *FileProcessor) createLightweightUploadRecord(task *UploadTask) (*model.UploadFile, error) {
438 fmt.Printf("创建轻量级上传记录 - 文件: %s\n", task.FileHeader.Filename)
439
440 // 轻量级文件直接计算哈希,不保存原始文件
441 file, err := task.FileHeader.Open()
442 if err != nil {
443 return nil, fmt.Errorf("打开文件失败: %v", err)
444 }
445 defer file.Close()
446
447 // 计算文件哈希
448 hashStr, err := storage.GetFileHash(file)
449 if err != nil {
450 return nil, fmt.Errorf("计算文件哈希失败: %v", err)
451 }
452
453 extension := filepath.Ext(task.FileHeader.Filename)
454 previewKey, err := model.GetPreviewKey(hashStr, extension, task.EID)
455 if err != nil {
456 return nil, fmt.Errorf("生成预览键失败: %v", err)
457 }
458
459 // 轻量级文件不保存到存储,只创建数据库记录
460 uploadFile := &model.UploadFile{
461 FileName: task.FileHeader.Filename,
462 Key: "", // 轻量级文件不保存原始文件
463 Eid: task.EID,
464 UserID: task.UserID,
465 Size: task.FileHeader.Size,
466 Extension: extension,
467 MimeType: task.FileHeader.Header.Get("Content-Type"),
468 Hash: hashStr,
469 PreviewKey: previewKey,
470 Status: model.UploadStatusPending,
471 }
472
473 if err := uploadFile.Save(); err != nil {
474 return nil, fmt.Errorf("保存轻量级上传记录失败: %v", err)
475 }
476
477 return uploadFile, nil
478}
479
480// updateBatchProgress 更新批量上传进度
481func (fp *FileProcessor) updateBatchProgress(task *UploadTask, status string, progress float64) {

Callers 1

Calls 5

SaveMethod · 0.95
PrintfMethod · 0.80
ErrorfMethod · 0.80
GetMethod · 0.65
CloseMethod · 0.45

Tested by

no test coverage detected