| @@ -546,6 +546,57 @@ func getCloudTwoOBSPrefix(scene string, fileChunk *models.FileChunk, fileName st | |||
| } | |||
| } | |||
| func specialDeal(modeluuid, uuid, fileName string, ctx *context.Context, fileChunk *models.FileChunk, typeCloudBrain int) { | |||
| copyModelFile(typeCloudBrain, fileChunk, fileName, fileName, modeluuid) | |||
| UpdateModelSize(modeluuid) | |||
| _, err := models.InsertAttachment(&models.Attachment{ | |||
| UUID: uuid, | |||
| UploaderID: ctx.User.ID, | |||
| IsPrivate: true, | |||
| Name: fileName, | |||
| Size: ctx.QueryInt64("size"), | |||
| DatasetID: 0, | |||
| Description: modeluuid, | |||
| Type: typeCloudBrain, | |||
| }) | |||
| if err != nil { | |||
| log.Info("add attachment error.") | |||
| } | |||
| } | |||
| func copyModelFile(typeCloudBrain int, fileChunk *models.FileChunk, name, fileName, modeluuid string) bool { | |||
| srcObjectName := fileChunk.ObjectName | |||
| var isExist bool | |||
| //copy | |||
| destObjectName := getObjectName(fileName, modeluuid) | |||
| if typeCloudBrain == models.TypeCloudBrainOne { | |||
| bucketName := setting.Attachment.Minio.Bucket | |||
| log.Info("minio copy..srcObjectName=" + srcObjectName + " bucketName=" + bucketName) | |||
| if storage.MinioGetFilesSize(bucketName, []string{destObjectName}) > 0 { | |||
| isExist = true | |||
| } else { | |||
| if srcObjectName == "" { | |||
| srcObjectName = getMinioInitObjectName("", fileChunk.UUID, "", "") | |||
| } | |||
| log.Info("minio copy..srcObjectName=" + srcObjectName + " bucketName=" + bucketName) | |||
| storage.MinioCopyAFile(bucketName, srcObjectName, bucketName, destObjectName) | |||
| } | |||
| } else { | |||
| bucketName := setting.Bucket | |||
| log.Info("obs copy..srcObjectName=" + srcObjectName + " bucketName=" + bucketName) | |||
| if storage.ObsGetFilesSize(bucketName, []string{destObjectName}) > 0 { | |||
| isExist = true | |||
| } else { | |||
| if srcObjectName == "" { | |||
| srcObjectName = getOBSInitObjectName("", fileChunk.UUID, "", name) | |||
| } | |||
| log.Info("obs copy..srcObjectName=" + srcObjectName + " bucketName=" + bucketName) | |||
| storage.ObsCopyFile(bucketName, srcObjectName, bucketName, destObjectName) | |||
| } | |||
| } | |||
| return isExist | |||
| } | |||
| func GetSuccessChunks(ctx *context.Context) { | |||
| fileMD5 := ctx.Query("md5") | |||
| typeCloudBrain := ctx.QueryInt("type") | |||
| @@ -579,6 +630,11 @@ func GetSuccessChunks(ctx *context.Context) { | |||
| isExist := false | |||
| if typeCloudBrain == models.TypeCloudBrainOne { | |||
| isExist, err = storage.Attachments.HasObject(getCloudOneMinioPrefix(scene, fileChunk)) | |||
| if isExist { | |||
| log.Info("The file is exist in minio. has uploaded.") | |||
| } else { | |||
| log.Info("The file is not exist in minio..") | |||
| } | |||
| if err != nil { | |||
| ctx.ServerError("HasObject failed", err) | |||
| return | |||
| @@ -590,6 +646,11 @@ func GetSuccessChunks(ctx *context.Context) { | |||
| oldFileName = oldAttachment.Name | |||
| } | |||
| isExist, err = storage.ObsHasObject(getCloudTwoOBSPrefix(scene, fileChunk, oldFileName)) | |||
| if isExist { | |||
| log.Info("The file is exist in obs. has uploaded.") | |||
| } else { | |||
| log.Info("The file is not exist in obs.") | |||
| } | |||
| if err != nil { | |||
| ctx.ServerError("ObsHasObject failed", err) | |||
| return | |||
| @@ -651,6 +712,10 @@ func GetSuccessChunks(ctx *context.Context) { | |||
| } | |||
| if attach == nil { | |||
| if fileChunk.IsUploaded == 1 && scene == Attachment_model { | |||
| log.Info("model upload special deal.") | |||
| specialDeal(modeluuid, fileChunk.UUID, fileName, ctx, fileChunk, typeCloudBrain) | |||
| } | |||
| ctx.JSON(200, map[string]string{ | |||
| "uuid": fileChunk.UUID, | |||
| "uploaded": strconv.Itoa(fileChunk.IsUploaded), | |||
| @@ -669,40 +734,41 @@ func GetSuccessChunks(ctx *context.Context) { | |||
| modelname := "" | |||
| if dbmodeluuid != modeluuid { | |||
| log.Info("The file has uploaded.fileChunk.ObjectName=" + fileChunk.ObjectName + " typeCloudBrain=" + fmt.Sprint(typeCloudBrain)) | |||
| srcObjectName := fileChunk.ObjectName | |||
| var isExist bool | |||
| isExist := copyModelFile(typeCloudBrain, fileChunk, attach.Name, fileName, modeluuid) | |||
| // srcObjectName := fileChunk.ObjectName | |||
| // var isExist bool | |||
| // //copy | |||
| // destObjectName := getObjectName(fileName, modeluuid) | |||
| // if typeCloudBrain == models.TypeCloudBrainOne { | |||
| // bucketName := setting.Attachment.Minio.Bucket | |||
| // log.Info("minio copy..srcObjectName=" + srcObjectName + " bucketName=" + bucketName) | |||
| // if storage.MinioGetFilesSize(bucketName, []string{destObjectName}) > 0 { | |||
| // isExist = true | |||
| // } else { | |||
| // if srcObjectName == "" { | |||
| // srcObjectName = getMinioInitObjectName("", fileChunk.UUID, "", "") | |||
| // } | |||
| // storage.MinioCopyAFile(bucketName, srcObjectName, bucketName, destObjectName) | |||
| // } | |||
| // } else { | |||
| // bucketName := setting.Bucket | |||
| // log.Info("obs copy..srcObjectName=" + srcObjectName + " bucketName=" + bucketName) | |||
| // if storage.ObsGetFilesSize(bucketName, []string{destObjectName}) > 0 { | |||
| // isExist = true | |||
| // } else { | |||
| // if srcObjectName == "" { | |||
| // srcObjectName = getOBSInitObjectName("", fileChunk.UUID, "", attach.Name) | |||
| // } | |||
| // log.Info("obs copy..srcObjectName=" + srcObjectName + " bucketName=" + bucketName) | |||
| // storage.ObsCopyFile(bucketName, srcObjectName, bucketName, destObjectName) | |||
| // } | |||
| // } | |||
| if dbmodeluuid != "" { | |||
| model, err := models.QueryModelById(dbmodeluuid) | |||
| if err == nil && model != nil { | |||
| modelname = model.Name | |||
| } | |||
| } | |||
| //copy | |||
| destObjectName := getObjectName(fileName, modeluuid) | |||
| if typeCloudBrain == models.TypeCloudBrainOne { | |||
| bucketName := setting.Attachment.Minio.Bucket | |||
| log.Info("minio copy..srcObjectName=" + srcObjectName + " bucketName=" + bucketName) | |||
| if storage.MinioGetFilesSize(bucketName, []string{destObjectName}) > 0 { | |||
| isExist = true | |||
| } else { | |||
| if srcObjectName == "" { | |||
| srcObjectName = getMinioInitObjectName("", fileChunk.UUID, "", "") | |||
| } | |||
| storage.MinioCopyAFile(bucketName, srcObjectName, bucketName, destObjectName) | |||
| } | |||
| } else { | |||
| bucketName := setting.Bucket | |||
| log.Info("obs copy..srcObjectName=" + srcObjectName + " bucketName=" + bucketName) | |||
| if storage.ObsGetFilesSize(bucketName, []string{destObjectName}) > 0 { | |||
| isExist = true | |||
| } else { | |||
| if srcObjectName == "" { | |||
| srcObjectName = getOBSInitObjectName("", fileChunk.UUID, "", attach.Name) | |||
| } | |||
| log.Info("obs copy..srcObjectName=" + srcObjectName + " bucketName=" + bucketName) | |||
| storage.ObsCopyFile(bucketName, srcObjectName, bucketName, destObjectName) | |||
| } | |||
| } | |||
| if isExist { | |||
| ctx.JSON(200, map[string]string{ | |||
| "uuid": fileChunk.UUID, | |||