Updata:增加打印信息
This commit is contained in:
parent
9009450c75
commit
dc42c16c68
@ -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 size(size==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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user