From 4aac415a120cc74c2b740068291339dc575d9724 Mon Sep 17 00:00:00 2001 From: yuyuanshifu <747342561@qq.com> Date: Fri, 26 Feb 2021 15:38:34 +0800 Subject: [PATCH 1/6] mod product env upload --- web_src/js/components/ObsUploader.vue | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/web_src/js/components/ObsUploader.vue b/web_src/js/components/ObsUploader.vue index e61981c7e..63252ce08 100755 --- a/web_src/js/components/ObsUploader.vue +++ b/web_src/js/components/ObsUploader.vue @@ -9,6 +9,7 @@ {{ file_status_text }} {{ status }}

+ @@ -151,8 +152,8 @@ export default { }, // 断点续传 - do_multi_uploader(file){ - + do_multi_uploader(evt){ + var file = evt.target.files[0] const result = this.get_result() const upload_datasetId = document .getElementById('datasetId') From d1d880d832f00263b9da688847f2aae5595f0bb8 Mon Sep 17 00:00:00 2001 From: yuyuanshifu <747342561@qq.com> Date: Fri, 26 Feb 2021 17:15:46 +0800 Subject: [PATCH 2/6] rollback --- web_src/js/components/ObsUploader.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web_src/js/components/ObsUploader.vue b/web_src/js/components/ObsUploader.vue index 63252ce08..275603b62 100755 --- a/web_src/js/components/ObsUploader.vue +++ b/web_src/js/components/ObsUploader.vue @@ -152,8 +152,8 @@ export default { }, // 断点续传 - do_multi_uploader(evt){ - var file = evt.target.files[0] + do_multi_uploader(file){ + //var file = evt.target.files[0] const result = this.get_result() const upload_datasetId = document .getElementById('datasetId') From 64312b85576d7026ab87e047024408bd6f2bc370 Mon Sep 17 00:00:00 2001 From: yuyuanshifu <747342561@qq.com> Date: Fri, 26 Feb 2021 17:57:03 +0800 Subject: [PATCH 3/6] rollback --- web_src/js/components/ObsUploader.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/web_src/js/components/ObsUploader.vue b/web_src/js/components/ObsUploader.vue index 275603b62..1ff118d94 100755 --- a/web_src/js/components/ObsUploader.vue +++ b/web_src/js/components/ObsUploader.vue @@ -9,7 +9,6 @@ {{ file_status_text }} {{ status }}

- From ad296c095345bd8771fbefd4fd11131b168fd527 Mon Sep 17 00:00:00 2001 From: yuyuanshifu <747342561@qq.com> Date: Thu, 4 Mar 2021 16:35:31 +0800 Subject: [PATCH 4/6] mod obs upload --- modules/storage/obs.go | 50 +-- routers/repo/attachment.go | 32 -- routers/routes/routes.go | 1 - web_src/js/components/MinioUploader.vue.opendata | 487 +++++++++++++++++++++++ web_src/js/components/ObsUploader.vue | 1 - 5 files changed, 497 insertions(+), 74 deletions(-) create mode 100755 web_src/js/components/MinioUploader.vue.opendata diff --git a/modules/storage/obs.go b/modules/storage/obs.go index d174b8fba..4e364fe9c 100755 --- a/modules/storage/obs.go +++ b/modules/storage/obs.go @@ -5,7 +5,7 @@ package storage import ( - "io" + "github.com/unknwon/com" "path" "strconv" "strings" @@ -102,57 +102,27 @@ func CompleteObsMultiPartUpload(uuid string, uploadID string) error { return nil } -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, uuid)), "/") - input.UploadId = uploadId - input.Bucket = setting.Bucket - input.PartSize = partSize - input.Body = body - output, err := ObsCli.UploadPart(input) - if err != nil { - log.Error("UploadPart failed:", err.Error()) - return "", err - } - - return output.ETag, nil -} - func ObsGenMultiPartSignedUrl(uuid string, uploadId string, partNumber int, partSize int64) (string, error) { - /* + input := &obs.CreateSignedUrlInput{} input.Bucket = setting.Bucket - input.Key = strings.TrimPrefix(path.Join(setting.BasePath, path.Join(uuid[0:1], uuid[1:2], uuid)), "/") - input.Expires = int(PresignedUploadPartUrlExpireTime) - input.Method = obs.HTTP_PUT + input.Key = strings.TrimPrefix(path.Join(setting.BasePath, path.Join(uuid[0:1], uuid[1:2], uuid, uuid)), "/") + input.Expires = 60 * 60 + input.Method = obs.HttpMethodPut input.QueryParams = map[string]string{ - "Bucket": input.Bucket, - "Key": input.Key, - "PartNumber": com.ToStr(partNumber,10), - "UploadId": uploadId, - "PartSize": com.ToStr(partSize,10), + "partNumber": com.ToStr(partNumber,10), + "uploadId": uploadId, + //"partSize": com.ToStr(partSize,10), } - input.Headers = map[string]string{ - - } - - */ - - 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) + output, err := ObsCli.CreateSignedUrl(input) if err != nil { log.Error("CreateSignedUrl failed:", err.Error()) return "", err } - log.Info(req.URL.String()) - log.Info("", req.Header) - - return req.URL.String(), nil - + return output.SignedUrl, nil } func ObsGetPreSignedUrl(uuid, fileName string) (string, error) { diff --git a/routers/repo/attachment.go b/routers/repo/attachment.go index 6874a1eda..62bdc2ea7 100755 --- a/routers/repo/attachment.go +++ b/routers/repo/attachment.go @@ -633,38 +633,6 @@ func GetObsKey(ctx *context.Context) { }) } -func UploadPart(ctx *context.Context) { - tmp, err := ctx.Req.Body().String() - log.Info(tmp) - - err = ctx.Req.ParseMultipartForm(100*1024*1024) - if err != nil { - ctx.Error(http.StatusBadRequest, fmt.Sprintf("ParseMultipartForm failed: %v", err)) - return - } - - file, fileHeader, err := ctx.Req.FormFile("file") - log.Info(ctx.Req.Form.Get("file")) - if err != nil { - ctx.Error(http.StatusBadRequest, fmt.Sprintf("FormFile failed: %v", err)) - return - } - - - - log.Info(fileHeader.Filename) - - etag, err := storage.ObsUploadPart("", "", 1, 1, file) - if err != nil { - ctx.Error(500, fmt.Sprintf("ObsUploadPart failed: %v", err)) - return - } - - ctx.JSON(200, map[string]string{ - "etag": etag, - }) -} - func CompleteMultipart(ctx *context.Context) { uuid := ctx.Query("uuid") uploadID := ctx.Query("uploadID") diff --git a/routers/routes/routes.go b/routers/routes/routes.go index 312707314..adc8938a9 100755 --- a/routers/routes/routes.go +++ b/routers/routes/routes.go @@ -529,7 +529,6 @@ func RegisterRoutes(m *macaron.Macaron) { m.Get("/get_multipart_url", repo.GetMultipartUploadUrl) m.Post("/complete_multipart", repo.CompleteMultipart) m.Post("/update_chunk", repo.UpdateMultipart) - m.Post("/upload_part", repo.UploadPart) m.Get("/get_obs_key", repo.GetObsKey) }, reqSignIn) diff --git a/web_src/js/components/MinioUploader.vue.opendata b/web_src/js/components/MinioUploader.vue.opendata new file mode 100755 index 000000000..1775fd02b --- /dev/null +++ b/web_src/js/components/MinioUploader.vue.opendata @@ -0,0 +1,487 @@ + + + + + \ No newline at end of file diff --git a/web_src/js/components/ObsUploader.vue b/web_src/js/components/ObsUploader.vue index 1ff118d94..0e9e7d2eb 100755 --- a/web_src/js/components/ObsUploader.vue +++ b/web_src/js/components/ObsUploader.vue @@ -152,7 +152,6 @@ export default { // 断点续传 do_multi_uploader(file){ - //var file = evt.target.files[0] const result = this.get_result() const upload_datasetId = document .getElementById('datasetId') From 614a6f3b1cc5b296014bb1e04f9e20a05c331a81 Mon Sep 17 00:00:00 2001 From: yuyuanshifu <747342561@qq.com> Date: Thu, 4 Mar 2021 17:55:26 +0800 Subject: [PATCH 5/6] obs upload --- routers/repo/attachment.go | 21 +- web_src/js/components/MinioUploader.vue | 8 +- web_src/js/components/ObsUploader.vue | 461 ++++++++++++++++++++++---------- 3 files changed, 331 insertions(+), 159 deletions(-) diff --git a/routers/repo/attachment.go b/routers/repo/attachment.go index 62bdc2ea7..cab123d30 100755 --- a/routers/repo/attachment.go +++ b/routers/repo/attachment.go @@ -422,14 +422,13 @@ func GetSuccessChunks(ctx *context.Context) { return } } else { - isExist, err = storage.ObsHasObject(models.AttachmentRelativePath(fileChunk.UUID)) + isExist, err = storage.ObsHasObject(setting.BasePath + models.AttachmentRelativePath(fileChunk.UUID) + "/" + fileChunk.UUID) if err != nil { ctx.ServerError("ObsHasObject failed", err) return } } - if isExist { if fileChunk.IsUploaded == models.FileNotUploaded { log.Info("the file has been uploaded but not recorded") @@ -692,15 +691,17 @@ func CompleteMultipart(ctx *context.Context) { } if attachment.DatasetID != 0 { - if strings.HasSuffix(attachment.Name, ".zip") { - err = worker.SendDecompressTask(contexExt.Background(), uuid) - if err != nil { - log.Error("SendDecompressTask(%s) failed:%s", uuid, err.Error()) - } else { - attachment.DecompressState = models.DecompressStateIng - err = models.UpdateAttachment(attachment) + if typeCloudBrain == models.TypeCloudBrainOne { + if strings.HasSuffix(attachment.Name, ".zip") { + err = worker.SendDecompressTask(contexExt.Background(), uuid) if err != nil { - log.Error("UpdateAttachment state(%s) failed:%s", uuid, err.Error()) + log.Error("SendDecompressTask(%s) failed:%s", uuid, err.Error()) + } else { + attachment.DecompressState = models.DecompressStateIng + err = models.UpdateAttachment(attachment) + if err != nil { + log.Error("UpdateAttachment state(%s) failed:%s", uuid, err.Error()) + } } } } diff --git a/web_src/js/components/MinioUploader.vue b/web_src/js/components/MinioUploader.vue index c453daf16..3ece6994e 100755 --- a/web_src/js/components/MinioUploader.vue +++ b/web_src/js/components/MinioUploader.vue @@ -21,6 +21,7 @@ import qs from 'qs'; import createDropzone from '../features/dropzone.js'; const {_AppSubUrl, _StaticUrlPrefix, csrf} = window.config; +const CloudBrainType = 0; export default { data() { @@ -245,8 +246,8 @@ export default { file_name: file.name, size: file.size, dataset_id: file.datasetId, - _csrf: csrf, - type:0 + type: CloudBrainType, + _csrf: csrf }) ); } @@ -284,6 +285,7 @@ export default { md5: file.uniqueIdentifier, size: file.size, fileType: file.type, + type: CloudBrainType, _csrf: csrf } }); @@ -324,6 +326,7 @@ export default { uploadID: file.uploadID, size: partSize, chunkNumber: currentChunk + 1, + type: CloudBrainType, _csrf: csrf } }); @@ -382,6 +385,7 @@ export default { file_name: file.name, size: file.size, dataset_id: file.datasetId, + type: CloudBrainType, _csrf: csrf }) ); diff --git a/web_src/js/components/ObsUploader.vue b/web_src/js/components/ObsUploader.vue index 0e9e7d2eb..16b53d343 100755 --- a/web_src/js/components/ObsUploader.vue +++ b/web_src/js/components/ObsUploader.vue @@ -4,22 +4,24 @@ id="dataset" class="dropzone" /> -

{{ file_status_text }} {{ status }}

- + From e34727c9f747390a99bc402fb5f77cc7eced2a79 Mon Sep 17 00:00:00 2001 From: yuyuanshifu <747342561@qq.com> Date: Thu, 4 Mar 2021 19:39:40 +0800 Subject: [PATCH 6/6] del unused file --- web_src/js/components/MinioUploader.vue.opendata | 487 ----------------------- 1 file changed, 487 deletions(-) delete mode 100755 web_src/js/components/MinioUploader.vue.opendata diff --git a/web_src/js/components/MinioUploader.vue.opendata b/web_src/js/components/MinioUploader.vue.opendata deleted file mode 100755 index 1775fd02b..000000000 --- a/web_src/js/components/MinioUploader.vue.opendata +++ /dev/null @@ -1,487 +0,0 @@ - - - - - \ No newline at end of file