Browse Source

fix 872

tags/v1.21.12.1
lewis 4 years ago
parent
commit
ec732ff5dc
3 changed files with 17 additions and 14 deletions
  1. +11
    -11
      modules/storage/obs.go
  2. +5
    -3
      routers/repo/attachment.go
  3. +1
    -0
      web_src/js/components/ObsUploader.vue

+ 11
- 11
modules/storage/obs.go View File

@@ -29,20 +29,20 @@ type FileInfo struct {
}

//check if has the object
//todo:修改查询方式
func ObsHasObject(path string) (bool, error) {
hasObject := false
output, err := ObsCli.ListObjects(&obs.ListObjectsInput{Bucket: setting.Bucket})
if err != nil {
log.Error("ListObjects failed:%v", err)
return hasObject, err
}

for _, obj := range output.Contents {
//obj.Key:attachment/0/1/019fd24e-4ef7-41cc-9f85-4a7b8504d958
if path == obj.Key {
hasObject = true
break
input := &obs.GetObjectMetadataInput{}
input.Bucket = setting.Bucket
input.Key = path
_, err := ObsCli.GetObjectMetadata(input)
if err == nil {
hasObject = true
} else {
if obsError, ok := err.(obs.ObsError); ok {
log.Error("GetObjectMetadata failed(%d): %s", obsError.StatusCode, obsError.Message)
} else {
log.Error("%v", err.Error())
}
}



+ 5
- 3
routers/repo/attachment.go View File

@@ -360,6 +360,7 @@ func GetPresignedPutObjectURL(ctx *context.Context) {
// AddAttachment response for add attachment record
func AddAttachment(ctx *context.Context) {
typeCloudBrain := ctx.QueryInt("type")
fileName := ctx.Query("file_name")
err := checkTypeCloudBrain(typeCloudBrain)
if err != nil {
ctx.ServerError("checkTypeCloudBrain failed", err)
@@ -375,7 +376,7 @@ func AddAttachment(ctx *context.Context) {
return
}
} else {
has, err = storage.ObsHasObject(setting.BasePath + models.AttachmentRelativePath(uuid) + "/" + uuid)
has, err = storage.ObsHasObject(setting.BasePath + models.AttachmentRelativePath(uuid) + "/" + fileName)
if err != nil {
ctx.ServerError("ObsHasObject", err)
return
@@ -391,7 +392,7 @@ func AddAttachment(ctx *context.Context) {
UUID: uuid,
UploaderID: ctx.User.ID,
IsPrivate: true,
Name: ctx.Query("file_name"),
Name: fileName,
Size: ctx.QueryInt64("size"),
DatasetID: ctx.QueryInt64("dataset_id"),
Type: typeCloudBrain,
@@ -479,6 +480,7 @@ func UpdateAttachmentDecompressState(ctx *context.Context) {
func GetSuccessChunks(ctx *context.Context) {
fileMD5 := ctx.Query("md5")
typeCloudBrain := ctx.QueryInt("type")
fileName := ctx.Query("file_name")
var chunks string

err := checkTypeCloudBrain(typeCloudBrain)
@@ -510,7 +512,7 @@ func GetSuccessChunks(ctx *context.Context) {
return
}
} else {
isExist, err = storage.ObsHasObject(setting.BasePath + models.AttachmentRelativePath(fileChunk.UUID) + "/" + fileChunk.UUID)
isExist, err = storage.ObsHasObject(setting.BasePath + models.AttachmentRelativePath(fileChunk.UUID) + "/" + fileName)
if err != nil {
ctx.ServerError("ObsHasObject failed", err)
return


+ 1
- 0
web_src/js/components/ObsUploader.vue View File

@@ -262,6 +262,7 @@ export default {
params: {
md5: file.uniqueIdentifier,
type: CloudBrainType,
file_name: file.name,
_csrf: csrf
}
};


Loading…
Cancel
Save