mirror of
https://github.com/OpenListTeam/OpenList.git
synced 2025-07-18 17:38:07 +08:00
refactor: optimize stream, link, and resource management (#486)
* refactor: optimize stream, link, and resource management * Link.MFile改为io.ReadSeeker类型 * fix (crypt): read on closed response body * chore * chore * chore
This commit is contained in:
@ -153,6 +153,7 @@ func Retry(attempts int, sleep time.Duration, f func() error) (err error) {
|
||||
type ClosersIF interface {
|
||||
io.Closer
|
||||
Add(closer io.Closer)
|
||||
TryAdd(reader io.Reader)
|
||||
AddClosers(closers Closers)
|
||||
GetClosers() Closers
|
||||
}
|
||||
@ -177,16 +178,19 @@ func (c *Closers) Close() error {
|
||||
return errors.Join(errs...)
|
||||
}
|
||||
func (c *Closers) Add(closer io.Closer) {
|
||||
c.closers = append(c.closers, closer)
|
||||
|
||||
if closer != nil {
|
||||
c.closers = append(c.closers, closer)
|
||||
}
|
||||
}
|
||||
func (c *Closers) AddClosers(closers Closers) {
|
||||
c.closers = append(c.closers, closers.closers...)
|
||||
}
|
||||
|
||||
func EmptyClosers() Closers {
|
||||
return Closers{[]io.Closer{}}
|
||||
func (c *Closers) TryAdd(reader io.Reader) {
|
||||
if closer, ok := reader.(io.Closer); ok {
|
||||
c.closers = append(c.closers, closer)
|
||||
}
|
||||
}
|
||||
|
||||
func NewClosers(c ...io.Closer) Closers {
|
||||
return Closers{c}
|
||||
}
|
||||
|
Reference in New Issue
Block a user