From 596bbdfa58dd6f8ac2dc38ea9bfb3da7178022bb Mon Sep 17 00:00:00 2001
From: yuyuanshifu <747342561@qq.com>
Date: Sun, 7 Feb 2021 17:55:28 +0800
Subject: [PATCH 28/36] obs key
---
routers/repo/attachment.go | 4 ++++
web_src/js/components/ObsUploader.vue | 12 ++++++------
2 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/routers/repo/attachment.go b/routers/repo/attachment.go
index 77b6fff85..30e57edfd 100755
--- a/routers/repo/attachment.go
+++ b/routers/repo/attachment.go
@@ -609,6 +609,10 @@ func GetObsKey(ctx *context.Context) {
ctx.JSON(200, map[string]string{
"uuid": uuid,
"key": key,
+ "access_key_id": setting.AccessKeyID,
+ "secret_access_key": setting.SecretAccessKey,
+ "server": setting.Endpoint,
+ "bucket": setting.Bucket,
})
}
diff --git a/web_src/js/components/ObsUploader.vue b/web_src/js/components/ObsUploader.vue
index 9ab59f320..e61981c7e 100755
--- a/web_src/js/components/ObsUploader.vue
+++ b/web_src/js/components/ObsUploader.vue
@@ -142,11 +142,11 @@ export default {
},
// 构建ObsClient
- getObsClient(){
+ getObsClient(result){
return new ObsClient({
- access_key_id: 'FDP3LRMHLB9S77VWEHE3',
- secret_access_key: 'LyM82Wk80pgjhs2z7AdDcsdpCWhbsJtSzQ7hkESN',
- server : 'https://obs.cn-south-222.ai.pcl.cn'
+ access_key_id: result.access_key_id,
+ secret_access_key: result.secret_access_key,
+ server : result.server
});
},
@@ -157,13 +157,13 @@ export default {
const upload_datasetId = document
.getElementById('datasetId')
.getAttribute('datasetId');
- const obsClient = this.getObsClient()
+ const obsClient = this.getObsClient(result)
const _this = this
var cp;
var hook;
obsClient.uploadFile({
- Bucket : 'testopendata',
+ Bucket : result.bucket,
Key : result.key,
SourceFile : file,
PartSize : 64 * 1024 * 1024,
From 7c0baefdf4a0e62a28e5408f64b39174a91ea72f Mon Sep 17 00:00:00 2001
From: yuyuanshifu <747342561@qq.com>
Date: Thu, 18 Feb 2021 11:00:06 +0800
Subject: [PATCH 29/36] config
---
custom/conf/app.ini.sample | 2 --
1 file changed, 2 deletions(-)
diff --git a/custom/conf/app.ini.sample b/custom/conf/app.ini.sample
index 49daa6e8d..a027624f4 100755
--- a/custom/conf/app.ini.sample
+++ b/custom/conf/app.ini.sample
@@ -1071,7 +1071,6 @@ HOST = http://192.168.207.84:3002/
COMMIT_VALID_DATE = 2021-01-15
[obs]
-#ENDPOINT = 112.95.163.82
ENDPOINT = https://obs.cn-south-222.ai.pcl.cn
ACCESS_KEY_ID = FDP3LRMHLB9S77VWEHE3
SECRET_ACCESS_KEY = LyM82Wk80pgjhs2z7AdDcsdpCWhbsJtSzQ7hkESN
@@ -1080,7 +1079,6 @@ LOCATION = cn-south-222
BASE_PATH = attachment/
[modelarts]
-#ENDPOINT = 112.95.163.80
ENDPOINT = https://modelarts.cn-south-222.ai.pcl.cn
PROJECT_ID = edfccf24aace4e17a56da6bcbb55a5aa
PROJECT_NAME = cn-south-222_test
From fa356c58daeab00994262108f06175e359de4e66 Mon Sep 17 00:00:00 2001
From: yuyuanshifu <747342561@qq.com>
Date: Thu, 18 Feb 2021 15:16:04 +0800
Subject: [PATCH 30/36] notebook
---
models/cloudbrain.go | 2 +-
modules/modelarts/resty.go | 72 ++++++++++++++++++++++------------------------
routers/repo/modelarts.go | 5 ----
3 files changed, 36 insertions(+), 43 deletions(-)
diff --git a/models/cloudbrain.go b/models/cloudbrain.go
index 036c25264..dea53e619 100755
--- a/models/cloudbrain.go
+++ b/models/cloudbrain.go
@@ -315,7 +315,7 @@ type Location struct {
}
type NotebookResult struct {
- ErrorCode string `json:"error_code"`
+ ErrorCode int `json:"error_code"`
ErrorMsg string `json:"error_msg"`
}
diff --git a/modules/modelarts/resty.go b/modules/modelarts/resty.go
index 95ad94d31..8f83990e0 100755
--- a/modules/modelarts/resty.go
+++ b/modules/modelarts/resty.go
@@ -106,12 +106,6 @@ sendjob:
return nil, fmt.Errorf("resty create job: %s", err)
}
- if res.StatusCode() == http.StatusUnauthorized && retry < 1 {
- retry++
- _ = getToken()
- goto sendjob
- }
-
var response models.NotebookResult
err = json.Unmarshal(res.Body(), &response)
if err != nil {
@@ -119,7 +113,13 @@ sendjob:
return &result, fmt.Errorf("son.Unmarshal failed: %s", err.Error())
}
- if len(response.ErrorCode) != 0 {
+ if response.ErrorCode == http.StatusUnauthorized && retry < 1 {
+ retry++
+ _ = getToken()
+ goto sendjob
+ }
+
+ if response.ErrorCode != 0 {
log.Error("CreateJob failed(%s): %s", response.ErrorCode, response.ErrorMsg)
return &result, fmt.Errorf("CreateJob failed(%s): %s", response.ErrorCode, response.ErrorMsg)
}
@@ -145,14 +145,6 @@ sendjob:
return nil, fmt.Errorf("resty GetJob: %v", err)
}
- if res.StatusCode() == http.StatusUnauthorized && retry < 1 {
- retry++
- _ = getToken()
- goto sendjob
- }
-
- log.Info(string(res.Body()))
-
var response models.NotebookResult
err = json.Unmarshal(res.Body(), &response)
if err != nil {
@@ -160,7 +152,13 @@ sendjob:
return &result, fmt.Errorf("son.Unmarshal failed: %s", err.Error())
}
- if len(response.ErrorCode) != 0 {
+ if response.ErrorCode == http.StatusUnauthorized && retry < 1 {
+ retry++
+ _ = getToken()
+ goto sendjob
+ }
+
+ if response.ErrorCode != 0 {
log.Error("GetJob failed(%s): %s", response.ErrorCode, response.ErrorMsg)
return &result, fmt.Errorf("GetJob failed(%s): %s", response.ErrorCode, response.ErrorMsg)
}
@@ -187,12 +185,6 @@ sendjob:
return &result, fmt.Errorf("resty StopJob: %v", err)
}
- if res.StatusCode() == http.StatusUnauthorized && retry < 1 {
- retry++
- _ = getToken()
- goto sendjob
- }
-
var response models.NotebookResult
err = json.Unmarshal(res.Body(), &response)
if err != nil {
@@ -200,7 +192,13 @@ sendjob:
return &result, fmt.Errorf("son.Unmarshal failed: %s", err.Error())
}
- if len(response.ErrorCode) != 0 {
+ if response.ErrorCode == http.StatusUnauthorized && retry < 1 {
+ retry++
+ _ = getToken()
+ goto sendjob
+ }
+
+ if response.ErrorCode != 0 {
log.Error("StopJob failed(%s): %s", response.ErrorCode, response.ErrorMsg)
return &result, fmt.Errorf("StopJob failed(%s): %s", response.ErrorCode, response.ErrorMsg)
}
@@ -226,12 +224,6 @@ sendjob:
return &result, fmt.Errorf("resty DelJob: %v", err)
}
- if res.StatusCode() == http.StatusUnauthorized && retry < 1 {
- retry++
- _ = getToken()
- goto sendjob
- }
-
var response models.NotebookResult
err = json.Unmarshal(res.Body(), &response)
if err != nil {
@@ -239,7 +231,13 @@ sendjob:
return &result, fmt.Errorf("son.Unmarshal failed: %s", err.Error())
}
- if len(response.ErrorCode) != 0 {
+ if response.ErrorCode == http.StatusUnauthorized && retry < 1 {
+ retry++
+ _ = getToken()
+ goto sendjob
+ }
+
+ if response.ErrorCode != 0 {
log.Error("DelJob failed(%s): %s", response.ErrorCode, response.ErrorMsg)
return &result, fmt.Errorf("DelJob failed(%s): %s", response.ErrorCode, response.ErrorMsg)
}
@@ -265,12 +263,6 @@ sendjob:
return &result, fmt.Errorf("resty GetJobToken: %v", err)
}
- if res.StatusCode() == http.StatusUnauthorized && retry < 1 {
- retry++
- _ = getToken()
- goto sendjob
- }
-
var response models.NotebookResult
err = json.Unmarshal(res.Body(), &response)
if err != nil {
@@ -278,7 +270,13 @@ sendjob:
return &result, fmt.Errorf("son.Unmarshal failed: %s", err.Error())
}
- if len(response.ErrorCode) != 0 {
+ if response.ErrorCode == http.StatusUnauthorized && retry < 1 {
+ retry++
+ _ = getToken()
+ goto sendjob
+ }
+
+ if response.ErrorCode != 0 {
log.Error("GetJobToken failed(%s): %s", response.ErrorCode, response.ErrorMsg)
return &result, fmt.Errorf("GetJobToken failed(%s): %s", response.ErrorCode, response.ErrorMsg)
}
diff --git a/routers/repo/modelarts.go b/routers/repo/modelarts.go
index d23ef3c05..a893bf21b 100755
--- a/routers/repo/modelarts.go
+++ b/routers/repo/modelarts.go
@@ -165,11 +165,6 @@ func ModelArtsDebug(ctx *context.Context) {
}
urlPrefix := result.Spec.Annotations.TargetDomain + "/modelarts/internal/hub/notebook/user/" + task.JobID
-
- //https://console.ai.pcl.cn/modelarts/internal/hub/notebook/user/DE-afcdf674-6489-11eb-bfe7-0255ac100057/lab
- //debugUrl := setting.DebugServerHost + "jpylab_" + task.JobID + "_" + task.SubTaskName
- //debugUrl := setting.ModelArtsHost + "/modelarts/internal/hub/notebook/user/" + task.JobID + "/lab"
- //debugUrl := "https://console.ai.pcl.cn/modelarts/internal/hub/notebook/user/" + task.JobID + "/lab"
debugUrl := urlPrefix + "?token=" + res.Token
ctx.Redirect(debugUrl)
}
From 13f3a4ac3c8c453f30d9786b5a801dccb298a6d5 Mon Sep 17 00:00:00 2001
From: yuyuanshifu <747342561@qq.com>
Date: Fri, 19 Feb 2021 10:58:05 +0800
Subject: [PATCH 31/36] respone
---
models/cloudbrain.go | 2 +-
modules/modelarts/resty.go | 70 +++++++++++++++++++++++-----------------------
2 files changed, 36 insertions(+), 36 deletions(-)
diff --git a/models/cloudbrain.go b/models/cloudbrain.go
index dea53e619..036c25264 100755
--- a/models/cloudbrain.go
+++ b/models/cloudbrain.go
@@ -315,7 +315,7 @@ type Location struct {
}
type NotebookResult struct {
- ErrorCode int `json:"error_code"`
+ ErrorCode string `json:"error_code"`
ErrorMsg string `json:"error_msg"`
}
diff --git a/modules/modelarts/resty.go b/modules/modelarts/resty.go
index 8f83990e0..b8a8b36a0 100755
--- a/modules/modelarts/resty.go
+++ b/modules/modelarts/resty.go
@@ -106,6 +106,12 @@ sendjob:
return nil, fmt.Errorf("resty create job: %s", err)
}
+ if res.StatusCode() == http.StatusUnauthorized && retry < 1 {
+ retry++
+ _ = getToken()
+ goto sendjob
+ }
+
var response models.NotebookResult
err = json.Unmarshal(res.Body(), &response)
if err != nil {
@@ -113,13 +119,7 @@ sendjob:
return &result, fmt.Errorf("son.Unmarshal failed: %s", err.Error())
}
- if response.ErrorCode == http.StatusUnauthorized && retry < 1 {
- retry++
- _ = getToken()
- goto sendjob
- }
-
- if response.ErrorCode != 0 {
+ if len(response.ErrorCode) != 0 {
log.Error("CreateJob failed(%s): %s", response.ErrorCode, response.ErrorMsg)
return &result, fmt.Errorf("CreateJob failed(%s): %s", response.ErrorCode, response.ErrorMsg)
}
@@ -145,6 +145,12 @@ sendjob:
return nil, fmt.Errorf("resty GetJob: %v", err)
}
+ if res.StatusCode() == http.StatusUnauthorized && retry < 1 {
+ retry++
+ _ = getToken()
+ goto sendjob
+ }
+
var response models.NotebookResult
err = json.Unmarshal(res.Body(), &response)
if err != nil {
@@ -152,13 +158,7 @@ sendjob:
return &result, fmt.Errorf("son.Unmarshal failed: %s", err.Error())
}
- if response.ErrorCode == http.StatusUnauthorized && retry < 1 {
- retry++
- _ = getToken()
- goto sendjob
- }
-
- if response.ErrorCode != 0 {
+ if len(response.ErrorCode) != 0 {
log.Error("GetJob failed(%s): %s", response.ErrorCode, response.ErrorMsg)
return &result, fmt.Errorf("GetJob failed(%s): %s", response.ErrorCode, response.ErrorMsg)
}
@@ -185,6 +185,12 @@ sendjob:
return &result, fmt.Errorf("resty StopJob: %v", err)
}
+ if res.StatusCode() == http.StatusUnauthorized && retry < 1 {
+ retry++
+ _ = getToken()
+ goto sendjob
+ }
+
var response models.NotebookResult
err = json.Unmarshal(res.Body(), &response)
if err != nil {
@@ -192,13 +198,7 @@ sendjob:
return &result, fmt.Errorf("son.Unmarshal failed: %s", err.Error())
}
- if response.ErrorCode == http.StatusUnauthorized && retry < 1 {
- retry++
- _ = getToken()
- goto sendjob
- }
-
- if response.ErrorCode != 0 {
+ if len(response.ErrorCode) != 0 {
log.Error("StopJob failed(%s): %s", response.ErrorCode, response.ErrorMsg)
return &result, fmt.Errorf("StopJob failed(%s): %s", response.ErrorCode, response.ErrorMsg)
}
@@ -224,6 +224,12 @@ sendjob:
return &result, fmt.Errorf("resty DelJob: %v", err)
}
+ if res.StatusCode() == http.StatusUnauthorized && retry < 1 {
+ retry++
+ _ = getToken()
+ goto sendjob
+ }
+
var response models.NotebookResult
err = json.Unmarshal(res.Body(), &response)
if err != nil {
@@ -231,13 +237,7 @@ sendjob:
return &result, fmt.Errorf("son.Unmarshal failed: %s", err.Error())
}
- if response.ErrorCode == http.StatusUnauthorized && retry < 1 {
- retry++
- _ = getToken()
- goto sendjob
- }
-
- if response.ErrorCode != 0 {
+ if len(response.ErrorCode) != 0 {
log.Error("DelJob failed(%s): %s", response.ErrorCode, response.ErrorMsg)
return &result, fmt.Errorf("DelJob failed(%s): %s", response.ErrorCode, response.ErrorMsg)
}
@@ -263,6 +263,12 @@ sendjob:
return &result, fmt.Errorf("resty GetJobToken: %v", err)
}
+ if res.StatusCode() == http.StatusUnauthorized && retry < 1 {
+ retry++
+ _ = getToken()
+ goto sendjob
+ }
+
var response models.NotebookResult
err = json.Unmarshal(res.Body(), &response)
if err != nil {
@@ -270,13 +276,7 @@ sendjob:
return &result, fmt.Errorf("son.Unmarshal failed: %s", err.Error())
}
- if response.ErrorCode == http.StatusUnauthorized && retry < 1 {
- retry++
- _ = getToken()
- goto sendjob
- }
-
- if response.ErrorCode != 0 {
+ if len(response.ErrorCode) != 0 {
log.Error("GetJobToken failed(%s): %s", response.ErrorCode, response.ErrorMsg)
return &result, fmt.Errorf("GetJobToken failed(%s): %s", response.ErrorCode, response.ErrorMsg)
}
From 799587ce05d7427bf870d26814f61f1287dfdfd6 Mon Sep 17 00:00:00 2001
From: yuyuanshifu <747342561@qq.com>
Date: Fri, 19 Feb 2021 17:53:27 +0800
Subject: [PATCH 32/36] download obs
---
modules/storage/obs.go | 19 +++++++++++++++++++
routers/repo/attachment.go | 27 ++++++++++++++++++++++-----
routers/repo/dataset.go | 1 +
templates/repo/datasets/dataset_list.tmpl | 4 ++--
templates/repo/datasets/index.tmpl | 1 -
5 files changed, 44 insertions(+), 8 deletions(-)
diff --git a/modules/storage/obs.go b/modules/storage/obs.go
index 86f98590d..bf8fac54c 100755
--- a/modules/storage/obs.go
+++ b/modules/storage/obs.go
@@ -154,3 +154,22 @@ func ObsGenMultiPartSignedUrl(uuid string, uploadId string, partNumber int, part
return req.URL.String(), nil
}
+
+func ObsGetPreSignedUrl(uuid, fileName string) (string, error) {
+ input := &obs.CreateSignedUrlInput{}
+ input.Method = obs.HttpMethodGet
+ input.Key = strings.TrimPrefix(path.Join(setting.BasePath, path.Join(uuid[0:1], uuid[1:2], uuid)), "/")
+ input.Bucket = setting.Bucket
+ input.Expires = 60 * 60
+
+ reqParams := make(map[string]string)
+ reqParams["response-content-disposition"] = "attachment; filename=\"" + fileName + "\""
+ input.QueryParams = reqParams
+ output, err := ObsCli.CreateSignedUrl(input)
+ if err != nil {
+ log.Error("CreateSignedUrl failed:", err.Error())
+ return "", err
+ }
+
+ return output.SignedUrl, nil
+}
diff --git a/routers/repo/attachment.go b/routers/repo/attachment.go
index 30e57edfd..ecfc8c407 100755
--- a/routers/repo/attachment.go
+++ b/routers/repo/attachment.go
@@ -143,6 +143,13 @@ func DeleteAttachment(ctx *context.Context) {
// GetAttachment serve attachements
func GetAttachment(ctx *context.Context) {
+ typeCloudBrain := ctx.QueryInt("type")
+ err := checkTypeCloudBrain(typeCloudBrain)
+ if err != nil {
+ ctx.ServerError("checkTypeCloudBrain failed", err)
+ return
+ }
+
attach, err := models.GetAttachmentByUUID(ctx.Params(":uuid"))
if err != nil {
if models.IsErrAttachmentNotExist(err) {
@@ -196,19 +203,29 @@ func GetAttachment(ctx *context.Context) {
//If we have matched and access to release or issue
if setting.Attachment.StoreType == storage.MinioStorageType {
- url, err := storage.Attachments.PresignedGetURL(attach.RelativePath(), attach.Name)
- if err != nil {
- ctx.ServerError("PresignedGetURL", err)
- return
+ url := ""
+ if typeCloudBrain == models.TypeCloudBrainOne {
+ url, err = storage.Attachments.PresignedGetURL(attach.RelativePath(), attach.Name)
+ if err != nil {
+ ctx.ServerError("PresignedGetURL", err)
+ return
+ }
+ } else {
+ url, err = storage.ObsGetPreSignedUrl(attach.UUID, attach.Name)
+ if err != nil {
+ ctx.ServerError("ObsGetPreSignedUrl", err)
+ return
+ }
}
+ log.Info(url)
+
if err = increaseDownloadCount(attach, dataSet); err != nil {
ctx.ServerError("Update", err)
return
}
http.Redirect(ctx.Resp, ctx.Req.Request, url, http.StatusMovedPermanently)
-
} else {
fr, err := storage.Attachments.Open(attach.RelativePath())
if err != nil {
diff --git a/routers/repo/dataset.go b/routers/repo/dataset.go
index 4d4fc4113..9c8557afa 100755
--- a/routers/repo/dataset.go
+++ b/routers/repo/dataset.go
@@ -80,6 +80,7 @@ func DatasetIndex(ctx *context.Context) {
ctx.Data["Attachments"] = attachments
ctx.Data["IsOwner"] = true
ctx.Data["StoreType"] = setting.Attachment.StoreType
+ ctx.Data["Type"] = ctx.QueryInt("type")
renderAttachmentSettings(ctx)
diff --git a/templates/repo/datasets/dataset_list.tmpl b/templates/repo/datasets/dataset_list.tmpl
index 53a8c8273..a86b7c6ca 100755
--- a/templates/repo/datasets/dataset_list.tmpl
+++ b/templates/repo/datasets/dataset_list.tmpl
@@ -3,7 +3,7 @@
@@ -14,7 +14,7 @@
{{svg "octicon-flame" 16}} {{(.DownloadCount | PrettyNumber)}}
-
+
{{svg "octicon-file" 16}}
diff --git a/templates/repo/datasets/index.tmpl b/templates/repo/datasets/index.tmpl
index dc3b82e4e..413bce917 100755
--- a/templates/repo/datasets/index.tmpl
+++ b/templates/repo/datasets/index.tmpl
@@ -5,7 +5,6 @@
$(document).ready(function() {
url = window.location.href
type = url.split('?type=')[1]
- console.log(type)
if (type == 0){
$('.contorl_component').attr("id", 'minioUploader')
}else{
From a8318daafee7111b13287f396079da34641f274e Mon Sep 17 00:00:00 2001
From: yuyuanshifu <747342561@qq.com>
Date: Sat, 20 Feb 2021 15:41:31 +0800
Subject: [PATCH 33/36] debug modelarts
---
routers/repo/modelarts.go | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/routers/repo/modelarts.go b/routers/repo/modelarts.go
index a893bf21b..f7543ece2 100755
--- a/routers/repo/modelarts.go
+++ b/routers/repo/modelarts.go
@@ -5,6 +5,7 @@ import (
"errors"
"github.com/unknwon/com"
"strconv"
+ "strings"
"time"
"code.gitea.io/gitea/models"
@@ -146,7 +147,7 @@ func ModelArtsShow(ctx *context.Context) {
func ModelArtsDebug(ctx *context.Context) {
var jobID = ctx.Params(":jobid")
- task, err := models.GetCloudbrainByJobID(jobID)
+ _, err := models.GetCloudbrainByJobID(jobID)
if err != nil {
ctx.ServerError("GetCloudbrainByJobID failed", err)
return
@@ -164,7 +165,17 @@ func ModelArtsDebug(ctx *context.Context) {
return
}
- urlPrefix := result.Spec.Annotations.TargetDomain + "/modelarts/internal/hub/notebook/user/" + task.JobID
+
+ urls := strings.Split(result.Spec.Annotations.Url, "/")
+ urlPrefix := result.Spec.Annotations.TargetDomain
+ for i, url := range urls {
+ if i > 2 {
+ urlPrefix += "/" + url
+ }
+ }
+
+ //urlPrefix := result.Spec.Annotations.TargetDomain + "/modelarts/internal/hub/notebook/user/" + task.JobID
+ log.Info(urlPrefix)
debugUrl := urlPrefix + "?token=" + res.Token
ctx.Redirect(debugUrl)
}
From eaeb6699c91c24fc8eab1ec169f91d2b8f6e73b4 Mon Sep 17 00:00:00 2001
From: yuyuanshifu <747342561@qq.com>
Date: Sat, 20 Feb 2021 16:14:25 +0800
Subject: [PATCH 34/36] store path mod
---
modules/modelarts/modelarts.go | 2 +-
modules/storage/obs.go | 12 ++++++------
routers/repo/attachment.go | 4 ++--
3 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/modules/modelarts/modelarts.go b/modules/modelarts/modelarts.go
index 775b345ad..844f37ffb 100755
--- a/modules/modelarts/modelarts.go
+++ b/modules/modelarts/modelarts.go
@@ -22,7 +22,7 @@ const (
)
func GenerateTask(ctx *context.Context, jobName, uuid, description string) error {
- dataActualPath := setting.Bucket + "/" + setting.BasePath + path.Join(uuid[0:1], uuid[1:2]) + "/"
+ dataActualPath := setting.Bucket + "/" + setting.BasePath + path.Join(uuid[0:1], uuid[1:2]) + "/" + uuid + "/"
jobResult, err := CreateJob(models.CreateNotebookParams{
JobName: jobName,
Description:description,
diff --git a/modules/storage/obs.go b/modules/storage/obs.go
index bf8fac54c..d174b8fba 100755
--- a/modules/storage/obs.go
+++ b/modules/storage/obs.go
@@ -37,7 +37,7 @@ func ObsHasObject(path string) (bool, error) {
}
func GetObsPartInfos(uuid string, uploadID string) (string, error) {
- key := strings.TrimPrefix(path.Join(setting.BasePath, path.Join(uuid[0:1], uuid[1:2], uuid)), "/")
+ key := strings.TrimPrefix(path.Join(setting.BasePath, path.Join(uuid[0:1], uuid[1:2], uuid, uuid)), "/")
output, err := ObsCli.ListParts(&obs.ListPartsInput{
Bucket: setting.Bucket,
@@ -60,7 +60,7 @@ func GetObsPartInfos(uuid string, uploadID string) (string, error) {
func NewObsMultiPartUpload(uuid string) (string, error) {
input := &obs.InitiateMultipartUploadInput{}
input.Bucket = setting.Bucket
- input.Key = strings.TrimPrefix(path.Join(setting.BasePath, path.Join(uuid[0:1], uuid[1:2], uuid)), "/")
+ input.Key = strings.TrimPrefix(path.Join(setting.BasePath, path.Join(uuid[0:1], uuid[1:2], uuid, uuid)), "/")
output, err := ObsCli.InitiateMultipartUpload(input)
if err != nil {
@@ -74,7 +74,7 @@ func NewObsMultiPartUpload(uuid string) (string, error) {
func CompleteObsMultiPartUpload(uuid string, uploadID string) error {
input := &obs.CompleteMultipartUploadInput{}
input.Bucket = setting.Bucket
- input.Key = strings.TrimPrefix(path.Join(setting.BasePath, path.Join(uuid[0:1], uuid[1:2], uuid)), "/")
+ input.Key = strings.TrimPrefix(path.Join(setting.BasePath, path.Join(uuid[0:1], uuid[1:2], uuid, uuid)), "/")
input.UploadId = uploadID
output, err := ObsCli.ListParts(&obs.ListPartsInput{
Bucket: setting.Bucket,
@@ -105,7 +105,7 @@ func CompleteObsMultiPartUpload(uuid string, uploadID string) error {
func ObsUploadPart(uuid string, uploadId string, partNumber int, partSize int64, body io.Reader) (string, error) {
input := &obs.UploadPartInput{}
input.PartNumber = partNumber
- input.Key = strings.TrimPrefix(path.Join(setting.BasePath, path.Join(uuid[0:1], uuid[1:2], uuid)), "/")
+ input.Key = strings.TrimPrefix(path.Join(setting.BasePath, path.Join(uuid[0:1], uuid[1:2], uuid, uuid)), "/")
input.UploadId = uploadId
input.Bucket = setting.Bucket
input.PartSize = partSize
@@ -141,7 +141,7 @@ func ObsGenMultiPartSignedUrl(uuid string, uploadId string, partNumber int, part
*/
- Key := strings.TrimPrefix(path.Join(setting.BasePath, path.Join(uuid[0:1], uuid[1:2], uuid)), "/")
+ Key := strings.TrimPrefix(path.Join(setting.BasePath, path.Join(uuid[0:1], uuid[1:2], uuid, uuid)), "/")
req, err := ObsCli.CreateUploadPartSignedUrl(setting.Bucket, Key, uploadId, partNumber, partSize)
if err != nil {
log.Error("CreateSignedUrl failed:", err.Error())
@@ -158,7 +158,7 @@ func ObsGenMultiPartSignedUrl(uuid string, uploadId string, partNumber int, part
func ObsGetPreSignedUrl(uuid, fileName string) (string, error) {
input := &obs.CreateSignedUrlInput{}
input.Method = obs.HttpMethodGet
- input.Key = strings.TrimPrefix(path.Join(setting.BasePath, path.Join(uuid[0:1], uuid[1:2], uuid)), "/")
+ input.Key = strings.TrimPrefix(path.Join(setting.BasePath, path.Join(uuid[0:1], uuid[1:2], uuid, uuid)), "/")
input.Bucket = setting.Bucket
input.Expires = 60 * 60
diff --git a/routers/repo/attachment.go b/routers/repo/attachment.go
index ecfc8c407..6874a1eda 100755
--- a/routers/repo/attachment.go
+++ b/routers/repo/attachment.go
@@ -309,7 +309,7 @@ func AddAttachment(ctx *context.Context) {
return
}
} else {
- has, err = storage.ObsHasObject(setting.BasePath + models.AttachmentRelativePath(uuid))
+ has, err = storage.ObsHasObject(setting.BasePath + models.AttachmentRelativePath(uuid) + "/" + uuid)
if err != nil {
ctx.ServerError("ObsHasObject", err)
return
@@ -621,7 +621,7 @@ func GetMultipartUploadUrl(ctx *context.Context) {
func GetObsKey(ctx *context.Context) {
uuid := gouuid.NewV4().String()
- key := strings.TrimPrefix(path.Join(setting.BasePath, path.Join(uuid[0:1], uuid[1:2], uuid)), "/")
+ key := strings.TrimPrefix(path.Join(setting.BasePath, path.Join(uuid[0:1], uuid[1:2], uuid, uuid)), "/")
ctx.JSON(200, map[string]string{
"uuid": uuid,
From 3e70eee7939ad2c9a894ebf8dc46f1ef23c1919f Mon Sep 17 00:00:00 2001
From: yuyuanshifu <747342561@qq.com>
Date: Sat, 20 Feb 2021 17:50:46 +0800
Subject: [PATCH 35/36] error_msg
---
modules/modelarts/resty.go | 3 +++
1 file changed, 3 insertions(+)
diff --git a/modules/modelarts/resty.go b/modules/modelarts/resty.go
index b8a8b36a0..32fd6e32f 100755
--- a/modules/modelarts/resty.go
+++ b/modules/modelarts/resty.go
@@ -121,6 +121,9 @@ sendjob:
if len(response.ErrorCode) != 0 {
log.Error("CreateJob failed(%s): %s", response.ErrorCode, response.ErrorMsg)
+ if response.ErrorCode == "ModelArts.0118" {
+ response.ErrorMsg = "所选规格使用数量已超过最大配额限制。"
+ }
return &result, fmt.Errorf("CreateJob failed(%s): %s", response.ErrorCode, response.ErrorMsg)
}
From 3f4864a0bf3ed50f565b5c5969b4c5b65c3fc3d0 Mon Sep 17 00:00:00 2001
From: yuyuanshifu <747342561@qq.com>
Date: Tue, 23 Feb 2021 09:35:32 +0800
Subject: [PATCH 36/36] error_code
---
modules/modelarts/resty.go | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/modelarts/resty.go b/modules/modelarts/resty.go
index 32fd6e32f..df020decb 100755
--- a/modules/modelarts/resty.go
+++ b/modules/modelarts/resty.go
@@ -23,7 +23,7 @@ const (
urlGetToken = "/v3/auth/tokens"
urlNotebook = "/demanager/instances"
- urlQueryNotebook = "/demanager/instances"
+ errorCodeExceedLimit = "ModelArts.0118"
)
func getRestyClient() *resty.Client {
if restyClient == nil {
@@ -121,7 +121,7 @@ sendjob:
if len(response.ErrorCode) != 0 {
log.Error("CreateJob failed(%s): %s", response.ErrorCode, response.ErrorMsg)
- if response.ErrorCode == "ModelArts.0118" {
+ if response.ErrorCode == errorCodeExceedLimit {
response.ErrorMsg = "所选规格使用数量已超过最大配额限制。"
}
return &result, fmt.Errorf("CreateJob failed(%s): %s", response.ErrorCode, response.ErrorMsg)