fix(189pc,baidu_photo): source file not closed

pull/1831/head
foxxorcat 2022-09-12 22:45:30 +08:00
parent 6b5236f52e
commit 53e08e75fe
2 changed files with 3 additions and 5 deletions

View File

@ -508,7 +508,6 @@ func (y *Yun189PC) FastUpload(ctx context.Context, dstDir model.Obj, file model.
_ = tempFile.Close() _ = tempFile.Close()
_ = os.Remove(tempFile.Name()) _ = os.Remove(tempFile.Name())
}() }()
file.SetReadCloser(tempFile)
const DEFAULT int64 = 10485760 const DEFAULT int64 = 10485760
count := int(math.Ceil(float64(file.GetSize()) / float64(DEFAULT))) count := int(math.Ceil(float64(file.GetSize()) / float64(DEFAULT)))
@ -526,7 +525,7 @@ func (y *Yun189PC) FastUpload(ctx context.Context, dstDir model.Obj, file model.
} }
silceMd5.Reset() silceMd5.Reset()
if _, err := io.CopyN(io.MultiWriter(fileMd5, silceMd5), file, DEFAULT); err != nil && err != io.EOF && err != io.ErrUnexpectedEOF { if _, err := io.CopyN(io.MultiWriter(fileMd5, silceMd5), tempFile, DEFAULT); err != nil && err != io.EOF && err != io.ErrUnexpectedEOF {
return err return err
} }
md5Byte := silceMd5.Sum(nil) md5Byte := silceMd5.Sum(nil)
@ -596,7 +595,7 @@ func (y *Yun189PC) FastUpload(ctx context.Context, dstDir model.Obj, file model.
SetContext(ctx). SetContext(ctx).
SetQueryParams(clientSuffix()). SetQueryParams(clientSuffix()).
SetHeaders(ParseHttpHeader(uploadData.RequestHeader)). SetHeaders(ParseHttpHeader(uploadData.RequestHeader)).
SetBody(io.LimitReader(file, DEFAULT)). SetBody(io.LimitReader(tempFile, DEFAULT)).
Put(uploadData.RequestURL) Put(uploadData.RequestURL)
if err != nil { if err != nil {
return err return err

View File

@ -177,7 +177,6 @@ func (d *BaiduPhoto) Put(ctx context.Context, dstDir model.Obj, stream model.Fil
_ = tempFile.Close() _ = tempFile.Close()
_ = os.Remove(tempFile.Name()) _ = os.Remove(tempFile.Name())
}() }()
stream.SetReadCloser(tempFile)
// 计算需要的数据 // 计算需要的数据
const DEFAULT = 1 << 22 const DEFAULT = 1 << 22
@ -195,7 +194,7 @@ func (d *BaiduPhoto) Put(ctx context.Context, dstDir model.Obj, stream model.Fil
return ctx.Err() return ctx.Err()
default: default:
} }
_, err := io.CopyN(io.MultiWriter(fileMd5, sliceMd5, slicemd52Write), stream, DEFAULT) _, err := io.CopyN(io.MultiWriter(fileMd5, sliceMd5, slicemd52Write), tempFile, DEFAULT)
if err != nil && err != io.EOF && err != io.ErrUnexpectedEOF { if err != nil && err != io.EOF && err != io.ErrUnexpectedEOF {
return err return err
} }