diff --git a/modules/storage/obs.go b/modules/storage/obs.go index 367ffe1e8..e20512f59 100755 --- a/modules/storage/obs.go +++ b/modules/storage/obs.go @@ -376,10 +376,10 @@ func GetAllObjectByBucketAndPrefix(bucket string, prefix string) ([]FileInfo, er return fileInfos, nil } -func GetObsListObject(jobName, parentDir, versionName string) ([]FileInfo, error) { +func GetObsListObject(jobName, outPutPath, parentDir, versionName string) ([]FileInfo, error) { input := &obs.ListObjectsInput{} input.Bucket = setting.Bucket - input.Prefix = strings.TrimPrefix(path.Join(setting.TrainJobModelPath, jobName, setting.OutPutPath, versionName, parentDir), "/") + input.Prefix = strings.TrimPrefix(path.Join(setting.TrainJobModelPath, jobName, outPutPath, versionName, parentDir), "/") strPrefix := strings.Split(input.Prefix, "/") output, err := ObsCli.ListObjects(input) fileInfos := make([]FileInfo, 0) @@ -401,7 +401,7 @@ func GetObsListObject(jobName, parentDir, versionName string) ([]FileInfo, error nextParentDir = parentDir + "/" + fileName } - if fileName == strPrefix[len(strPrefix)-1] || (fileName+"/") == setting.OutPutPath { + if fileName == strPrefix[len(strPrefix)-1] || (fileName+"/") == outPutPath { continue } } else { diff --git a/routers/api/v1/api.go b/routers/api/v1/api.go index 763ff11af..a6a59f797 100755 --- a/routers/api/v1/api.go +++ b/routers/api/v1/api.go @@ -892,7 +892,7 @@ func RegisterRoutes(m *macaron.Macaron) { m.Get("/log", repo.TrainJobGetLog) m.Post("/del_version", repo.DelTrainJobVersion) m.Post("/stop_version", repo.StopTrainJobVersion) - m.Get("/model_list", repo.ModelList) + m.Get("/result_list", repo.ResultList) }) }) }, reqRepoReader(models.UnitTypeCloudBrain)) diff --git a/routers/api/v1/repo/modelarts.go b/routers/api/v1/repo/modelarts.go index bb651663a..4b9fe1299 100755 --- a/routers/api/v1/repo/modelarts.go +++ b/routers/api/v1/repo/modelarts.go @@ -306,7 +306,7 @@ func ModelList(ctx *context.APIContext) { log.Error("GetCloudbrainByJobID(%s) failed:%v", task.JobName, err.Error()) return } - models, err := storage.GetObsListObject(task.JobName, parentDir, versionName) + models, err := storage.GetObsListObject(task.JobName, "output/", parentDir, versionName) if err != nil { log.Info("get TrainJobListModel failed:", err) ctx.ServerError("GetObsListObject:", err) @@ -364,3 +364,35 @@ func GetModelArtsInferenceJob(ctx *context.APIContext) { }) } + +func ResultList(ctx *context.APIContext) { + var ( + err error + ) + + var jobID = ctx.Params(":jobid") + var versionName = ctx.Query("version_name") + parentDir := ctx.Query("parentDir") + dirArray := strings.Split(parentDir, "/") + task, err := models.GetCloudbrainByJobIDAndVersionName(jobID, versionName) + if err != nil { + log.Error("GetCloudbrainByJobID(%s) failed:%v", task.JobName, err.Error()) + return + } + models, err := storage.GetObsListObject(task.JobName, "result/", parentDir, versionName) + if err != nil { + log.Info("get TrainJobListModel failed:", err) + ctx.ServerError("GetObsListObject:", err) + return + } + + ctx.JSON(http.StatusOK, map[string]interface{}{ + "JobID": jobID, + "VersionName": versionName, + "StatusOK": 0, + "Path": dirArray, + "Dirs": models, + "task": task, + "PageIsCloudBrain": true, + }) +} diff --git a/routers/repo/modelarts.go b/routers/repo/modelarts.go index f0a7ae93e..3368474e4 100755 --- a/routers/repo/modelarts.go +++ b/routers/repo/modelarts.go @@ -1543,34 +1543,6 @@ func getConfigList(perPage, page int, sortBy, order, searchContent, configType s return list, nil } -func ModelDownload(ctx *context.Context) { - var ( - err error - ) - - var jobID = ctx.Params(":jobid") - versionName := ctx.Query("version_name") - parentDir := ctx.Query("parent_dir") - fileName := ctx.Query("file_name") - log.Info("DownloadSingleModelFile start.") - task, err := models.GetCloudbrainByJobIDAndVersionName(jobID, versionName) - if err != nil { - log.Error("GetCloudbrainByJobID(%s) failed:%v", task.JobName, err.Error()) - return - } - - path := strings.TrimPrefix(path.Join(setting.TrainJobModelPath, task.JobName, setting.OutPutPath, versionName, parentDir, fileName), "/") - log.Info("Download path is:%s", path) - - url, err := storage.GetObsCreateSignedUrlByBucketAndKey(setting.Bucket, path) - if err != nil { - log.Error("GetObsCreateSignedUrl failed: %v", err.Error(), ctx.Data["msgID"]) - ctx.ServerError("GetObsCreateSignedUrl", err) - return - } - http.Redirect(ctx.Resp, ctx.Req.Request, url, http.StatusMovedPermanently) -} - func InferenceJobCreate(ctx *context.Context, form auth.CreateModelArtsInferenceJobForm) { ctx.Data["PageIsTrainJob"] = true VersionOutputPath := modelarts.GetVersionOutputPathByTotalVersionCount(modelarts.TotalVersionCount) diff --git a/routers/routes/routes.go b/routers/routes/routes.go index cf69e1ffa..6a3e89b3d 100755 --- a/routers/routes/routes.go +++ b/routers/routes/routes.go @@ -1023,7 +1023,6 @@ func RegisterRoutes(m *macaron.Macaron) { m.Get("", reqRepoCloudBrainReader, repo.TrainJobShow) m.Post("/stop", cloudbrain.AdminOrOwnerOrJobCreaterRight, repo.TrainJobStop) m.Post("/del", cloudbrain.AdminOrOwnerOrJobCreaterRight, repo.TrainJobDel) - m.Get("/model_download", cloudbrain.AdminOrOwnerOrJobCreaterRight, repo.ModelDownload) m.Get("/create_version", cloudbrain.AdminOrJobCreaterRight, repo.TrainJobNewVersion) m.Post("/create_version", cloudbrain.AdminOrJobCreaterRight, bindIgnErr(auth.CreateModelArtsTrainJobForm{}), repo.TrainJobCreateVersion) }) @@ -1039,7 +1038,6 @@ func RegisterRoutes(m *macaron.Macaron) { m.Get("", reqRepoCloudBrainReader, repo.InferenceJobShow) m.Post("/stop", cloudbrain.AdminOrOwnerOrJobCreaterRight, repo.InferenceJobStop) m.Post("/del", cloudbrain.AdminOrOwnerOrJobCreaterRight, repo.InferenceJobDel) - m.Get("/result_download", cloudbrain.AdminOrOwnerOrJobCreaterRight, repo.ResultDownload) }) m.Get("/create", reqRepoCloudBrainWriter, repo.InferenceJobNew) m.Post("/create", reqRepoCloudBrainWriter, bindIgnErr(auth.CreateModelArtsInferenceJobForm{}), repo.InferenceJobCreate) diff --git a/templates/repo/modelarts/inferencejob/show.tmpl b/templates/repo/modelarts/inferencejob/show.tmpl index a32019db1..6d34e6a37 100644 --- a/templates/repo/modelarts/inferencejob/show.tmpl +++ b/templates/repo/modelarts/inferencejob/show.tmpl @@ -551,7 +551,7 @@ function loadModelFile(version_name,parents,filename,init){ parents = parents || '' filename = filename || '' init = init || '' - $.get(`/api/v1/repos/${userName}/${repoPath}/modelarts/inference-job/${jobID}/model_list?version_name=${version_name}&parentDir=${parents}`, (data) => { + $.get(`/api/v1/repos/${userName}/${repoPath}/modelarts/inference-job/${jobID}/result_list?version_name=${version_name}&parentDir=${parents}`, (data) => { $(`#dir_list${version_name}`).empty() renderDir(data,version_name) if(init==="init"){