refactor(backend): update SetRedisFileInfo to use handler functions for better data manipulation and simplify file merging process with io.CopyBuffer

This commit is contained in:
keven1024
2026-04-06 11:23:35 +08:00
parent 55949d1f76
commit 17fa39b830
2 changed files with 13 additions and 15 deletions

View File

@@ -90,7 +90,9 @@ func CreateUploadTask(c *echo.Context) error {
CreatedAt: time.Now().Unix(),
Expire: uploadTaskExpire,
}
err = models.SetRedisFileInfo(fileId, newFileInfo)
err = models.SetRedisFileInfo(fileId, func(fileInfo *models.RedisFileInfo) *models.RedisFileInfo {
return &newFileInfo
})
if err != nil {
return utils.HTTPErrorHandler(c, err)
}
@@ -233,8 +235,9 @@ func FinishUploadTask(c *echo.Context) error {
}
// 更新文件信息
err = models.SetRedisFileInfo(r.FileId, models.RedisFileInfo{
FileType: models.FileTypeUpload,
err = models.SetRedisFileInfo(r.FileId, func(fileInfo *models.RedisFileInfo) *models.RedisFileInfo {
fileInfo.FileType = models.FileTypeUpload
return fileInfo
})
if err != nil {
return utils.HTTPErrorHandler(c, err)

View File

@@ -71,18 +71,13 @@ func MergeFileSlices(fileId string, uploadPath string) (string, error) {
if err != nil {
return "", fmt.Errorf("打开切片文件失败: %v", err)
}
defer sf.Close() //nolint:errcheck
for {
n, err := sf.Read(buffer)
if err == io.EOF {
break
}
if err != nil {
return "", fmt.Errorf("读取切片文件失败: %v", err)
}
if _, err := destFile.Write(buffer[:n]); err != nil {
return "", fmt.Errorf("写入合并文件失败: %v", err)
}
if _, err := io.CopyBuffer(destFile, sf, buffer); err != nil {
sf.Close() //nolint:errcheck
return "", fmt.Errorf("合并切片文件失败: %v", err)
}
if err := sf.Close(); err != nil {
return "", fmt.Errorf("关闭切片文件失败: %v", err)
}
}
return mergeFilePath, nil