From 504f4a8bb9cf55b5828d3dd1ecb9bb771fd41a6f Mon Sep 17 00:00:00 2001 From: liuzx Date: Thu, 30 Dec 2021 18:18:15 +0800 Subject: [PATCH] update --- routers/repo/modelarts.go | 28 ++++++++++++++++++++++++++++ routers/routes/routes.go | 1 + 2 files changed, 29 insertions(+) diff --git a/routers/repo/modelarts.go b/routers/repo/modelarts.go index 481816846..67244a74c 100755 --- a/routers/repo/modelarts.go +++ b/routers/repo/modelarts.go @@ -1960,6 +1960,34 @@ func InferenceJobShow(ctx *context.Context) { ctx.HTML(http.StatusOK, tplModelArtsInferenceJobShow) } +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 ResultDownload(ctx *context.Context) { var ( err error diff --git a/routers/routes/routes.go b/routers/routes/routes.go index 96ee3de92..af6ff68f3 100755 --- a/routers/routes/routes.go +++ b/routers/routes/routes.go @@ -1023,6 +1023,7 @@ 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) })