From 7ae7857c4e1e7dcdf3cd0987fdadee72f5f8bb0e Mon Sep 17 00:00:00 2001 From: David Hao Date: Fri, 28 Jun 2024 15:55:38 +0800 Subject: [PATCH] Fix: move makeDir downside into op/fs.go to cover all the cases of create multi-level file --- internal/op/fs.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/internal/op/fs.go b/internal/op/fs.go index 5c9c9f3f..e5be3119 100644 --- a/internal/op/fs.go +++ b/internal/op/fs.go @@ -216,6 +216,21 @@ func Get(ctx context.Context, storage driver.Driver, path string) (model.Obj, er // not root folder dir, name := stdpath.Split(path) + + // makeDir default set to true, you can set it to false by context in some cases + // ctx = context.WithValue(ctx, "makeDir", false) + makeDir, ok := ctx.Value("makeDir").(bool) + if !ok { + makeDir = true + } + if makeDir { + log.Debugf("make dir: %s", dir) + err := MakeDir(ctx, storage, dir) + if err != nil { + return nil, errors.WithMessagef(err, "failed to make dir [%s]", dir) + } + } + files, err := List(ctx, storage, dir, model.ListArgs{}) if err != nil { return nil, errors.WithMessage(err, "failed get parent list")