fix(quark): upload file integer divide by zero panic. (close #3076 pr #3077)

This commit is contained in:
Gao Mingfei 2023-01-17 17:55:07 +08:00 committed by Noah Hsu
parent 26fe0a7684
commit 0a337756ba

View File

@ -175,9 +175,9 @@ func (d *Quark) Put(ctx context.Context, dstDir model.Obj, stream model.FileStre
var bytes []byte var bytes []byte
md5s := make([]string, 0) md5s := make([]string, 0)
defaultBytes := make([]byte, partSize) defaultBytes := make([]byte, partSize)
left := stream.GetSize() total := stream.GetSize()
left := total
partNumber := 1 partNumber := 1
sizeDivide100 := stream.GetSize() / 100
for left > 0 { for left > 0 {
if utils.IsCanceled(ctx) { if utils.IsCanceled(ctx) {
return ctx.Err() return ctx.Err()
@ -191,7 +191,7 @@ func (d *Quark) Put(ctx context.Context, dstDir model.Obj, stream model.FileStre
if err != nil { if err != nil {
return err return err
} }
left -= int64(partSize) left -= int64(len(bytes))
log.Debugf("left: %d", left) log.Debugf("left: %d", left)
m, err := d.upPart(ctx, pre, stream.GetMimetype(), partNumber, bytes) m, err := d.upPart(ctx, pre, stream.GetMimetype(), partNumber, bytes)
//m, err := driver.UpPart(pre, file.GetMIMEType(), partNumber, bytes, account, md5Str, sha1Str) //m, err := driver.UpPart(pre, file.GetMIMEType(), partNumber, bytes, account, md5Str, sha1Str)
@ -203,7 +203,7 @@ func (d *Quark) Put(ctx context.Context, dstDir model.Obj, stream model.FileStre
} }
md5s = append(md5s, m) md5s = append(md5s, m)
partNumber++ partNumber++
up(100 - int(left/sizeDivide100)) up(int(100 * (total - left) / total))
} }
err = d.upCommit(pre, md5s) err = d.upCommit(pre, md5s)
if err != nil { if err != nil {