From ec3f9b2f96e5c47851b46f2caa566093bacc39b3 Mon Sep 17 00:00:00 2001 From: Simon Ding Date: Sun, 20 Apr 2025 10:25:05 +0800 Subject: [PATCH] fix: create dir if not exist --- pkg/storage/local.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkg/storage/local.go b/pkg/storage/local.go index d808b32..fa6d731 100644 --- a/pkg/storage/local.go +++ b/pkg/storage/local.go @@ -6,6 +6,7 @@ import ( "io/ioutil" "os" "path/filepath" + "polaris/log" "github.com/gabriel-vasile/mimetype" "github.com/pkg/errors" @@ -30,6 +31,13 @@ func (l *LocalStorage) Copy(src, destDir string,walkFn WalkFn) error { baseDest := filepath.Join(l.dir, destDir) uploadFunc := func(destPath string, destInfo fs.FileInfo, srcReader io.Reader, mimeType *mimetype.MIME) error { + baseDir := filepath.Dir(destPath) + if _, err := os.Stat(baseDir); os.IsNotExist(err) { + if err := os.MkdirAll(baseDir, os.ModePerm); err != nil { + return errors.Wrapf(err, "create dir %s", baseDir) + } + log.Infof("create local dir %s", baseDir) + } if writer, err := os.OpenFile(destPath, os.O_RDWR|os.O_CREATE|os.O_TRUNC, os.ModePerm); err != nil { return errors.Wrapf(err, "create file %s", destPath) } else { @@ -40,6 +48,7 @@ func (l *LocalStorage) Copy(src, destDir string,walkFn WalkFn) error { } } + log.Infof("copy file %s to %s success", srcReader, destPath) return nil } return b.Upload(baseDest, true, false, false, uploadFunc, func(s string) error {