From 176aa232973e534a710ce50ab0b3b89e6185fe04 Mon Sep 17 00:00:00 2001 From: Nick White Date: Wed, 19 May 2021 22:23:41 +0100 Subject: Local download now tries to open the source file before creating a destination file, so if it fails an empty file isnt left behind --- local.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/local.go b/local.go index 816b44b..44aea76 100644 --- a/local.go +++ b/local.go @@ -215,17 +215,18 @@ func (a *LocalConn) DelFromQueue(url string, handle string) error { // Download just copies the file from TempDir/bucket/key to path func (a *LocalConn) Download(bucket string, key string, path string) error { - f, err := os.Create(path) + fin, err := os.Open(filepath.Join(a.TempDir, bucket, key)) if err != nil { return err } - defer f.Close() + defer fin.Close() - fin, err := os.Open(filepath.Join(a.TempDir, bucket, key)) + f, err := os.Create(path) if err != nil { return err } - defer fin.Close() + defer f.Close() + _, err = io.Copy(f, fin) return err } -- cgit v1.2.1-24-ge1ad