diff --git a/modules/storage/obs.go b/modules/storage/obs.go index f7f91dcd2..86d022cee 100755 --- a/modules/storage/obs.go +++ b/modules/storage/obs.go @@ -280,18 +280,18 @@ func ObsCopyFile(srcBucket string, srcKeyName string, destBucket string, destKey return nil } -func GetAllObsListObjectUnderDir(bucket string, prefix string) ([]FileInfo, error) { +func GetAllObsListObjectUnderDir(bucket string, prefixRootPath string, relativePath string) ([]FileInfo, error) { input := &obs.ListObjectsInput{} input.Bucket = bucket - input.Prefix = prefix + input.Prefix = prefixRootPath + relativePath output, err := ObsCli.ListObjects(input) fileInfos := make([]FileInfo, 0) - prefixLen := len(prefix) + prefixLen := len(input.Prefix) if err == nil { for _, val := range output.Contents { var isDir bool - var fileName, parentDir string - if val.Key == prefix { + var fileName string + if val.Key == input.Prefix { continue } if strings.Contains(val.Key[prefixLen:len(val.Key)-1], "/") { @@ -300,7 +300,7 @@ func GetAllObsListObjectUnderDir(bucket string, prefix string) ([]FileInfo, erro if strings.HasSuffix(val.Key, "/") { isDir = true fileName = val.Key[prefixLen : len(val.Key)-1] - parentDir = val.Key[prefixLen:] + relativePath += val.Key[prefixLen:] } else { isDir = false fileName = val.Key[prefixLen:] @@ -310,7 +310,7 @@ func GetAllObsListObjectUnderDir(bucket string, prefix string) ([]FileInfo, erro FileName: fileName, Size: val.Size, IsDir: isDir, - ParenDir: parentDir, + ParenDir: relativePath, } fileInfos = append(fileInfos, fileInfo) } diff --git a/routers/repo/ai_model_manage.go b/routers/repo/ai_model_manage.go index eafd98e85..bc276ad17 100644 --- a/routers/repo/ai_model_manage.go +++ b/routers/repo/ai_model_manage.go @@ -225,8 +225,8 @@ func ShowSingleModel(ctx *context.Context) { ctx.ServerError("no such model:", err) return } - log.Info("bucket=" + setting.Bucket + " key=" + task.Path[len(setting.Bucket)+1:] + parentDir) - models, err := storage.GetAllObsListObjectUnderDir(setting.Bucket, task.Path[len(setting.Bucket)+1:]+parentDir) + log.Info("bucket=" + setting.Bucket + " key=" + task.Path[len(setting.Bucket)+1:]) + models, err := storage.GetAllObsListObjectUnderDir(setting.Bucket, task.Path[len(setting.Bucket)+1:], parentDir) if err != nil { log.Info("get model list failed:", err) ctx.ServerError("GetObsListObject:", err)