Browse Source

Merge branch 'zouap_static' of openi.pcl.ac.cn:OpenI/aiforge into zouap_static

tags/v1.22.11.2^2
chenshihai 3 years ago
parent
commit
2fb9f872c4
1 changed files with 94 additions and 28 deletions
  1. +94
    -28
      routers/repo/attachment.go

+ 94
- 28
routers/repo/attachment.go View File

@@ -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,


Loading…
Cancel
Save