feat: cancel copy for upload

This commit is contained in:
Noah Hsu
2022-06-25 15:14:03 +08:00
parent 935416de45
commit ee2bc99e4c
3 changed files with 42 additions and 3 deletions

View File

@ -3,7 +3,6 @@ package local
import (
"context"
"github.com/alist-org/alist/v3/internal/errs"
"io"
"io/ioutil"
"os"
"path/filepath"
@ -144,8 +143,11 @@ func (d *Driver) Put(ctx context.Context, dstDir model.Obj, stream model.FileStr
}
defer func() {
_ = out.Close()
if errors.Is(err, context.Canceled) {
_ = os.Remove(fullPath)
}
}()
_, err = io.Copy(out, stream)
err = utils.CopyWithCtx(ctx, out, stream)
if err != nil {
return errors.Wrapf(err, "error while copy file %s", fullPath)
}