mirror of
https://github.com/keven1024/015.git
synced 2026-05-26 07:08:02 +00:00
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:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user