Reviewed-on: https://git.openi.org.cn/OpenI/aiforge/pulls/66 Reviewed-by: shimy <1729788216@qq.com>tags/1.13.6
@@ -57,10 +57,10 @@ func GetObsPartInfos(uuid string, uploadID string) (string, error) { | |||
return chunks, nil | |||
} | |||
func NewObsMultiPartUpload(uuid string) (string, error) { | |||
func NewObsMultiPartUpload(uuid, fileName 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, uuid)), "/") | |||
input.Key = strings.TrimPrefix(path.Join(setting.BasePath, path.Join(uuid[0:1], uuid[1:2], uuid, fileName)), "/") | |||
output, err := ObsCli.InitiateMultipartUpload(input) | |||
if err != nil { | |||
@@ -71,10 +71,10 @@ func NewObsMultiPartUpload(uuid string) (string, error) { | |||
return output.UploadId, nil | |||
} | |||
func CompleteObsMultiPartUpload(uuid string, uploadID string) error { | |||
func CompleteObsMultiPartUpload(uuid, uploadID, fileName 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, uuid)), "/") | |||
input.Key = strings.TrimPrefix(path.Join(setting.BasePath, path.Join(uuid[0:1], uuid[1:2], uuid, fileName)), "/") | |||
input.UploadId = uploadID | |||
output, err := ObsCli.ListParts(&obs.ListPartsInput{ | |||
Bucket: setting.Bucket, | |||
@@ -102,11 +102,11 @@ func CompleteObsMultiPartUpload(uuid string, uploadID string) error { | |||
return nil | |||
} | |||
func ObsGenMultiPartSignedUrl(uuid string, uploadId string, partNumber int, partSize int64) (string, error) { | |||
func ObsGenMultiPartSignedUrl(uuid string, uploadId string, partNumber int, fileName string) (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, uuid)), "/") | |||
input.Key = strings.TrimPrefix(path.Join(setting.BasePath, path.Join(uuid[0:1], uuid[1:2], uuid, fileName)), "/") | |||
input.Expires = 60 * 60 | |||
input.Method = obs.HttpMethodPut | |||
@@ -128,7 +128,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, uuid)), "/") | |||
input.Key = strings.TrimPrefix(path.Join(setting.BasePath, path.Join(uuid[0:1], uuid[1:2], uuid, fileName)), "/") | |||
input.Bucket = setting.Bucket | |||
input.Expires = 60 * 60 | |||
@@ -218,8 +218,6 @@ func GetAttachment(ctx *context.Context) { | |||
} | |||
} | |||
log.Info(url) | |||
if err = increaseDownloadCount(attach, dataSet); err != nil { | |||
ctx.ServerError("Update", err) | |||
return | |||
@@ -526,6 +524,8 @@ func NewMultipart(ctx *context.Context) { | |||
return | |||
} | |||
fileName := ctx.Query("file_name") | |||
if setting.Attachment.StoreType == storage.MinioStorageType { | |||
totalChunkCounts := ctx.QueryInt("totalChunkCounts") | |||
if totalChunkCounts > minio_ext.MaxPartsCount { | |||
@@ -548,7 +548,7 @@ func NewMultipart(ctx *context.Context) { | |||
return | |||
} | |||
} else { | |||
uploadID, err = storage.NewObsMultiPartUpload(uuid) | |||
uploadID, err = storage.NewObsMultiPartUpload(uuid, fileName) | |||
if err != nil { | |||
ctx.ServerError("NewObsMultiPartUpload", err) | |||
return | |||
@@ -585,6 +585,7 @@ func GetMultipartUploadUrl(ctx *context.Context) { | |||
uploadID := ctx.Query("uploadID") | |||
partNumber := ctx.QueryInt("chunkNumber") | |||
size := ctx.QueryInt64("size") | |||
fileName := ctx.Query("file_name") | |||
typeCloudBrain := ctx.QueryInt("type") | |||
err := checkTypeCloudBrain(typeCloudBrain) | |||
@@ -606,7 +607,7 @@ func GetMultipartUploadUrl(ctx *context.Context) { | |||
return | |||
} | |||
} else { | |||
url, err = storage.ObsGenMultiPartSignedUrl(uuid, uploadID, partNumber, size) | |||
url, err = storage.ObsGenMultiPartSignedUrl(uuid, uploadID, partNumber, fileName) | |||
if err != nil { | |||
ctx.Error(500, fmt.Sprintf("ObsGenMultiPartSignedUrl failed: %v", err)) | |||
return | |||
@@ -636,6 +637,7 @@ func CompleteMultipart(ctx *context.Context) { | |||
uuid := ctx.Query("uuid") | |||
uploadID := ctx.Query("uploadID") | |||
typeCloudBrain := ctx.QueryInt("type") | |||
fileName := ctx.Query("file_name") | |||
err := checkTypeCloudBrain(typeCloudBrain) | |||
if err != nil { | |||
@@ -660,7 +662,7 @@ func CompleteMultipart(ctx *context.Context) { | |||
return | |||
} | |||
} else { | |||
err = storage.CompleteObsMultiPartUpload(uuid, uploadID) | |||
err = storage.CompleteObsMultiPartUpload(uuid, uploadID, fileName) | |||
if err != nil { | |||
ctx.Error(500, fmt.Sprintf("CompleteObsMultiPartUpload failed: %v", err)) | |||
return | |||
@@ -679,7 +681,7 @@ func CompleteMultipart(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, | |||
@@ -287,6 +287,7 @@ export default { | |||
size: file.size, | |||
fileType: file.type, | |||
type: CloudBrainType, | |||
file_name: file.name, | |||
_csrf: csrf | |||
} | |||
}); | |||
@@ -328,6 +329,7 @@ export default { | |||
size: partSize, | |||
chunkNumber: currentChunk + 1, | |||
type: CloudBrainType, | |||
file_name: file.name, | |||
_csrf: csrf | |||
} | |||
}); | |||