Updata:增加打印信息

This commit is contained in:
jiaji.H 2026-03-26 14:22:28 +08:00
parent 9009450c75
commit dc42c16c68

View File

@ -267,6 +267,7 @@ func TusUpload(ctx *gin.Context) {
service.Error(ctx, errors.New(common.ERROR_OPEN_FILE))
return
}
if !isLikelyMP4(b) {
service.Error(ctx, errors.New("mp4机器码校验失败"))
//删除对应空文件
@ -454,7 +455,9 @@ func GetFileSecurityStatus(ctx *gin.Context) {
}
func isLikelyMP4(b []byte) bool {
fmt.Println("开始效验机器码")
if len(b) < 16 {
fmt.Println("len(b) < 16")
return false
}
// 只扫开头一段,避免性能问题;放宽到 8KB
@ -467,17 +470,20 @@ func isLikelyMP4(b []byte) bool {
size := binary.BigEndian.Uint32(b[i : i+4])
typ := string(b[i+4 : i+8])
if size == 0 {
fmt.Println("size == 0")
return false
}
// 处理 extended sizesize==1 表示后面是 64-bit size
hdr := uint32(8)
if size == 1 {
if i+16 > limit {
fmt.Println("i+16 > limit")
return false
}
ext := binary.BigEndian.Uint64(b[i+8 : i+16])
// ext 太大但当前 chunk 不够,就直接退出
if ext > uint64(limit-i) {
fmt.Println("ext > uint64(limit-i)")
return false
}
size = uint32(ext) // 这里只为快速判断;一般 ftyp 不会用到很大的扩展 size
@ -485,7 +491,7 @@ func isLikelyMP4(b []byte) bool {
}
// 找到 ftyp 就放行(只做基本合法性检查)
if typ == "ftyp" {
fmt.Println("typ == ftyp")
major := b[i+int(hdr) : i+int(hdr)+4]
minor := binary.BigEndian.Uint32(b[i+int(hdr)+4 : i+int(hdr)+8])
compatStart := i + int(hdr) + 8