From 207676d4a794a10c1f452056a654da271127542c Mon Sep 17 00:00:00 2001 From: Gabriel Simmer Date: Thu, 2 Apr 2020 15:31:30 +0100 Subject: [PATCH] Correct config provider, no backblaze goroutine. Addressing a bug where the configuration would try to interpret the provider name from the entry in the configuration, rather than the explicit `provider`. Also removed background uploading from Backblaze (was worth a shot). --- files/backblaze.go | 18 ++++++++++-------- files/disk.go | 6 +++++- files/fileutils.go | 4 ++-- router/filerouter.go | 2 -- 4 files changed, 17 insertions(+), 13 deletions(-) diff --git a/files/backblaze.go b/files/backblaze.go index fa0a0de..c92b8c0 100644 --- a/files/backblaze.go +++ b/files/backblaze.go @@ -214,13 +214,16 @@ func (bp *BackblazeProvider) SaveFile(file multipart.File, handler *multipart.Fi } var data BackblazeUploadInfo - json.Unmarshal(bucketData, &data) + err = json.Unmarshal(bucketData, &data) + if err != nil { + fmt.Println(err.Error()) + return false + } req, err = http.NewRequest("POST", data.UploadUrl, file, ) - if err != nil { fmt.Println(err.Error()) return false @@ -243,12 +246,11 @@ func (bp *BackblazeProvider) SaveFile(file multipart.File, handler *multipart.Fi req.ContentLength = handler.Size // Upload in background. - go func() { - res, err = client.Do(req) - if err != nil { - fmt.Println(err.Error()) - } - }() + res, err = client.Do(req) + if err != nil { + fmt.Println(err.Error()) + return false + } return true } diff --git a/files/disk.go b/files/disk.go index ab93263..a34e852 100644 --- a/files/disk.go +++ b/files/disk.go @@ -63,7 +63,11 @@ func (dp *DiskProvider) SaveFile(file multipart.File, handler *multipart.FileHea } defer f.Close() - io.Copy(f, file) + _, err = io.Copy(f, file) + if err != nil { + fmt.Println(err.Error()) + return false + } return true } diff --git a/files/fileutils.go b/files/fileutils.go index ca100ef..f30a1ce 100644 --- a/files/fileutils.go +++ b/files/fileutils.go @@ -7,12 +7,12 @@ var Providers map[string]*FileProviderInterface func TranslateProvider(codename string, i *FileProviderInterface) { provider := ProviderConfig[codename] - if codename == "disk" { + if provider.Provider == "disk" { *i = &DiskProvider{provider,} return } - if codename == "backblaze" { + if provider.Provider == "backblaze" { bbProv := &BackblazeProvider{provider, provider.Config["bucket"], ""} *i = bbProv return diff --git a/router/filerouter.go b/router/filerouter.go index 91d6a44..a7b6bcb 100644 --- a/router/filerouter.go +++ b/router/filerouter.go @@ -12,7 +12,6 @@ import ( ) func HandleProvider() common.Handler { - return func(rc *common.RouterContext, w http.ResponseWriter, r *http.Request) *common.HTTPError { vars := mux.Vars(r) if r.Method == "GET" { @@ -66,7 +65,6 @@ func HandleProvider() common.Handler { } func ListProviders() common.Handler { - return func(rc *common.RouterContext, w http.ResponseWriter, r *http.Request) *common.HTTPError { var providers []string for v, _ := range files.ProviderConfig {