diff --git a/client/client.go b/client/client.go index d0fc46ec..5dd573c0 100644 --- a/client/client.go +++ b/client/client.go @@ -639,7 +639,7 @@ func (c *QQClient) UploadGroupImageByFile(groupCode int64, path string) (*messag c.srvSsoAddrs = append(c.srvSsoAddrs, fmt.Sprintf("%v:%v", binary.UInt32ToIPV4Address(uint32(addr)), rsp.UploadPort[i])) } } - if _, err = c.highwayUploadFileMultiThreadingByBDH(path, 2, 2, rsp.UploadKey, EmptyBytes); err == nil { + if _, err = c.highwayUploadFileMultiThreadingByBDH(path, 2, 4, rsp.UploadKey, EmptyBytes); err == nil { goto ok } return nil, errors.New("upload failed") diff --git a/client/highway.go b/client/highway.go index 6e7888f1..0a60a439 100644 --- a/client/highway.go +++ b/client/highway.go @@ -192,7 +192,7 @@ func (c *QQClient) highwayUploadFileMultiThreadingByBDH(path string, cmdId int32 if err != nil { return nil, errors.Wrap(err, "open file error") } - if stat.Size() < 1024*1024*5 { + if stat.Size() < 1024*1024*3 { return c.highwayUploadByBDH(file, cmdId, ticket, ext) } type BlockMetaData struct { @@ -205,7 +205,7 @@ func (c *QQClient) highwayUploadFileMultiThreadingByBDH(path string, cmdId int32 h := md5.New() _, _ = io.Copy(h, file) fh := h.Sum(nil) - var blockSize int64 = 1024 * 1024 + var blockSize int64 = 8192 * 8 var blocks []*BlockMetaData var rspExt []byte // Init Blocks