mirror of
https://github.com/krau/SaveAny-Bot.git
synced 2026-08-08 14:03:25 +08:00
fix: improve error handling during file download in stream mode
This commit is contained in:
@@ -61,10 +61,12 @@ func (t *Task) processElement(ctx context.Context, elem TaskElement) error {
|
|||||||
t.Progress.OnProgress(ctx, t)
|
t.Progress.OnProgress(ctx, t)
|
||||||
})
|
})
|
||||||
errg.Go(func() error {
|
errg.Go(func() error {
|
||||||
|
defer pw.Close()
|
||||||
logger.Info("Starting file download in stream mode")
|
logger.Info("Starting file download in stream mode")
|
||||||
_, err := tfile.NewDownloader(elem.File).Stream(uploadCtx, wr)
|
_, err := tfile.NewDownloader(elem.File).Stream(uploadCtx, wr)
|
||||||
if closeErr := pw.CloseWithError(err); closeErr != nil {
|
if err != nil {
|
||||||
logger.Errorf("Failed to close pipe writer: %v", closeErr)
|
logger.Errorf("Failed to download file: %v", err)
|
||||||
|
pw.CloseWithError(err)
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -21,10 +21,12 @@ func executeStream(ctx context.Context, task *Task) error {
|
|||||||
})
|
})
|
||||||
wr := newWriter(ctx, pw, task.Progress, task)
|
wr := newWriter(ctx, pw, task.Progress, task)
|
||||||
errg.Go(func() error {
|
errg.Go(func() error {
|
||||||
|
defer pw.Close()
|
||||||
logger.Info("Starting file download in stream mode")
|
logger.Info("Starting file download in stream mode")
|
||||||
_, err := tfile.NewDownloader(task.File).Stream(uploadCtx, wr)
|
_, err := tfile.NewDownloader(task.File).Stream(uploadCtx, wr)
|
||||||
if closeErr := pw.CloseWithError(err); closeErr != nil {
|
if err != nil {
|
||||||
logger.Errorf("Failed to close pipe writer: %v", closeErr)
|
logger.Errorf("Failed to download file: %v", err)
|
||||||
|
pw.CloseWithError(err)
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user