change readerToFile (#211)

This commit is contained in:
多吃点苹果 2023-01-22 09:06:16 +08:00 committed by GitHub
parent 71d8221cad
commit 26fc0bb366
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -501,30 +501,27 @@ func (p *MessageResponseParser) SentMessage(msg *SendMessage) (*SentMessage, err
} }
func readerToFile(reader io.Reader) (file *os.File, cb func(), err error) { func readerToFile(reader io.Reader) (file *os.File, cb func(), err error) {
if file, ok := reader.(*os.File); ok { var ok bool
if file, ok = reader.(*os.File); ok {
return file, func() {}, nil return file, func() {}, nil
} }
file, err = os.CreateTemp("", "*") file, err = os.CreateTemp("", "*")
if err != nil { if err != nil {
return nil, nil, err return nil, nil, err
} }
cb = func() {
_ = file.Close()
_ = os.Remove(file.Name())
}
_, err = io.Copy(file, reader) _, err = io.Copy(file, reader)
if err != nil { if err != nil {
_ = file.Close() cb()
_ = os.Remove(file.Name())
return nil, nil, err return nil, nil, err
} }
if err = file.Close(); err != nil { _, err = file.Seek(0, io.SeekStart)
_ = os.Remove(file.Name())
return nil, nil, err
}
file, err = os.Open(file.Name())
if err != nil { if err != nil {
_ = os.Remove(file.Name()) cb()
return nil, nil, err return nil, nil, err
} }
return file, func() { return file, cb, nil
_ = file.Close()
_ = os.Remove(file.Name())
}, nil
} }