refactor(backend): update file hash calculation from MD5 to SHA1 and rename related error handling

This commit is contained in:
keven1024
2026-04-08 23:48:07 +08:00
parent ae2fbcc216
commit 907f77aa66
4 changed files with 8 additions and 8 deletions

View File

@@ -17,7 +17,7 @@ var (
ErrInvalidFileSliceIndex = errors.New("InvalidFileSliceIndex") // 文件切片索引错误 ErrInvalidFileSliceIndex = errors.New("InvalidFileSliceIndex") // 文件切片索引错误
ErrInvalidFileSliceSize = errors.New("InvalidFileSliceSize") // 文件切片大小错误 ErrInvalidFileSliceSize = errors.New("InvalidFileSliceSize") // 文件切片大小错误
ErrIncompleteFileSlices = errors.New("IncompleteFileSlices") // 文件切片不完整 ErrIncompleteFileSlices = errors.New("IncompleteFileSlices") // 文件切片不完整
ErrFileMD5Mismatch = errors.New("FileMD5Mismatch") // 文件MD5不一致 ErrFileHashMismatch = errors.New("FileHashMismatch") // 文件Hash不一致
// 分享相关 // 分享相关
ErrShareFileNotFound = errors.New("ShareFileNotFound") // 分享文件不存在 ErrShareFileNotFound = errors.New("ShareFileNotFound") // 分享文件不存在

View File

@@ -212,18 +212,18 @@ func FinishUploadTask(c *echo.Context) error {
return utils.HTTPErrorHandler(c, err) return utils.HTTPErrorHandler(c, err)
} }
// 计算文件MD5 // 计算文件SHA1
file, err := os.Open(mergeFilePath) file, err := os.Open(mergeFilePath)
if err != nil { if err != nil {
return utils.HTTPErrorHandler(c, err) return utils.HTTPErrorHandler(c, err)
} }
defer file.Close() //nolint:errcheck defer file.Close() //nolint:errcheck
file_hash, err := u.GetFileMd5(file) file_hash, err := u.GetFileSHA1(file)
if err != nil || file_hash != fileInfo.FileHash { if err != nil || file_hash != fileInfo.FileHash {
defer os.Remove(mergeFilePath) //nolint:errcheck defer os.Remove(mergeFilePath) //nolint:errcheck
if err == nil { if err == nil {
return utils.HTTPErrorHandler(c, ErrFileMD5Mismatch) return utils.HTTPErrorHandler(c, ErrFileHashMismatch)
} }
return utils.HTTPErrorHandler(c, err) return utils.HTTPErrorHandler(c, err)
} }

View File

@@ -2,7 +2,7 @@ package utils
import ( import (
"bufio" "bufio"
"crypto/md5" "crypto/sha1"
"fmt" "fmt"
"io" "io"
"os" "os"
@@ -15,9 +15,9 @@ func GetFileId(fileHash string, fileSize int64) string {
return fmt.Sprintf("%s_%d", fileHash, fileSize) return fmt.Sprintf("%s_%d", fileHash, fileSize)
} }
func GetFileMd5(file io.Reader) (string, error) { func GetFileSHA1(file io.Reader) (string, error) {
const bufferSize = 1024 * 1000 // 1MB const bufferSize = 1024 * 1000 // 1MB
hash := md5.New() hash := sha1.New()
buf := make([]byte, bufferSize) buf := make([]byte, bufferSize)
reader := bufio.NewReader(file) reader := bufio.NewReader(file)
for { for {

View File

@@ -31,7 +31,7 @@ func GenStandardFile(filePath string, mimeType string) (GenStandardFileReturn, e
} }
fileSize := fileInfo.Size() fileSize := fileInfo.Size()
fileHash, err := u.GetFileMd5(file) fileHash, err := u.GetFileSHA1(file)
if err != nil { if err != nil {
return GenStandardFileReturn{}, err return GenStandardFileReturn{}, err
} }