mirror of
https://github.com/keven1024/015.git
synced 2026-05-26 07:08:02 +00:00
refactor(backend): update file hash calculation from MD5 to SHA1 and rename related error handling
This commit is contained in:
@@ -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") // 分享文件不存在
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user