change readerToFile (#211)
This commit is contained in:
parent
71d8221cad
commit
26fc0bb366
23
caller.go
23
caller.go
@ -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
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user