diff --git a/pkg/filestore/filestore.go b/pkg/filestore/filestore.go index 7323ed83..24dcf43c 100644 --- a/pkg/filestore/filestore.go +++ b/pkg/filestore/filestore.go @@ -240,14 +240,7 @@ func (upload *fileUpload) ConcatUploads(ctx context.Context, uploads []handler.U }() for _, partialUpload := range uploads { - fileUpload := partialUpload.(*fileUpload) - - src, err := os.Open(fileUpload.binPath) - if err != nil { - return err - } - - if _, err := io.Copy(file, src); err != nil { + if err := partialUpload.(*fileUpload).appendTo(file); err != nil { return err } } @@ -255,6 +248,20 @@ func (upload *fileUpload) ConcatUploads(ctx context.Context, uploads []handler.U return } +func (upload *fileUpload) appendTo(file *os.File) error { + src, err := os.Open(upload.binPath) + if err != nil { + return err + } + + if _, err := io.Copy(file, src); err != nil { + src.Close() + return err + } + + return src.Close() +} + func (upload *fileUpload) DeclareLength(ctx context.Context, length int64) error { upload.info.Size = length upload.info.SizeIsDeferred = false