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 | return chunks, nil | ||||
| } | } | ||||
| func NewObsMultiPartUpload(uuid string) (string, error) { | |||||
| func NewObsMultiPartUpload(uuid, fileName string) (string, error) { | |||||
| input := &obs.InitiateMultipartUploadInput{} | input := &obs.InitiateMultipartUploadInput{} | ||||
| input.Bucket = setting.Bucket | 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) | output, err := ObsCli.InitiateMultipartUpload(input) | ||||
| if err != nil { | if err != nil { | ||||
| @@ -71,10 +71,10 @@ func NewObsMultiPartUpload(uuid string) (string, error) { | |||||
| return output.UploadId, nil | return output.UploadId, nil | ||||
| } | } | ||||
| func CompleteObsMultiPartUpload(uuid string, uploadID string) error { | |||||
| func CompleteObsMultiPartUpload(uuid, uploadID, fileName string) error { | |||||
| input := &obs.CompleteMultipartUploadInput{} | input := &obs.CompleteMultipartUploadInput{} | ||||
| input.Bucket = setting.Bucket | 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 | input.UploadId = uploadID | ||||
| output, err := ObsCli.ListParts(&obs.ListPartsInput{ | output, err := ObsCli.ListParts(&obs.ListPartsInput{ | ||||
| Bucket: setting.Bucket, | Bucket: setting.Bucket, | ||||
| @@ -102,11 +102,11 @@ func CompleteObsMultiPartUpload(uuid string, uploadID string) error { | |||||
| return nil | 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 := &obs.CreateSignedUrlInput{} | ||||
| input.Bucket = setting.Bucket | 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.Expires = 60 * 60 | ||||
| input.Method = obs.HttpMethodPut | input.Method = obs.HttpMethodPut | ||||
| @@ -128,7 +128,7 @@ func ObsGenMultiPartSignedUrl(uuid string, uploadId string, partNumber int, part | |||||
| func ObsGetPreSignedUrl(uuid, fileName string) (string, error) { | func ObsGetPreSignedUrl(uuid, fileName string) (string, error) { | ||||
| input := &obs.CreateSignedUrlInput{} | input := &obs.CreateSignedUrlInput{} | ||||
| input.Method = obs.HttpMethodGet | 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.Bucket = setting.Bucket | ||||
| input.Expires = 60 * 60 | input.Expires = 60 * 60 | ||||
| @@ -218,8 +218,6 @@ func GetAttachment(ctx *context.Context) { | |||||
| } | } | ||||
| } | } | ||||
| log.Info(url) | |||||
| if err = increaseDownloadCount(attach, dataSet); err != nil { | if err = increaseDownloadCount(attach, dataSet); err != nil { | ||||
| ctx.ServerError("Update", err) | ctx.ServerError("Update", err) | ||||
| return | return | ||||
| @@ -526,6 +524,8 @@ func NewMultipart(ctx *context.Context) { | |||||
| return | return | ||||
| } | } | ||||
| fileName := ctx.Query("file_name") | |||||
| if setting.Attachment.StoreType == storage.MinioStorageType { | if setting.Attachment.StoreType == storage.MinioStorageType { | ||||
| totalChunkCounts := ctx.QueryInt("totalChunkCounts") | totalChunkCounts := ctx.QueryInt("totalChunkCounts") | ||||
| if totalChunkCounts > minio_ext.MaxPartsCount { | if totalChunkCounts > minio_ext.MaxPartsCount { | ||||
| @@ -548,7 +548,7 @@ func NewMultipart(ctx *context.Context) { | |||||
| return | return | ||||
| } | } | ||||
| } else { | } else { | ||||
| uploadID, err = storage.NewObsMultiPartUpload(uuid) | |||||
| uploadID, err = storage.NewObsMultiPartUpload(uuid, fileName) | |||||
| if err != nil { | if err != nil { | ||||
| ctx.ServerError("NewObsMultiPartUpload", err) | ctx.ServerError("NewObsMultiPartUpload", err) | ||||
| return | return | ||||
| @@ -585,6 +585,7 @@ func GetMultipartUploadUrl(ctx *context.Context) { | |||||
| uploadID := ctx.Query("uploadID") | uploadID := ctx.Query("uploadID") | ||||
| partNumber := ctx.QueryInt("chunkNumber") | partNumber := ctx.QueryInt("chunkNumber") | ||||
| size := ctx.QueryInt64("size") | size := ctx.QueryInt64("size") | ||||
| fileName := ctx.Query("file_name") | |||||
| typeCloudBrain := ctx.QueryInt("type") | typeCloudBrain := ctx.QueryInt("type") | ||||
| err := checkTypeCloudBrain(typeCloudBrain) | err := checkTypeCloudBrain(typeCloudBrain) | ||||
| @@ -606,7 +607,7 @@ func GetMultipartUploadUrl(ctx *context.Context) { | |||||
| return | return | ||||
| } | } | ||||
| } else { | } else { | ||||
| url, err = storage.ObsGenMultiPartSignedUrl(uuid, uploadID, partNumber, size) | |||||
| url, err = storage.ObsGenMultiPartSignedUrl(uuid, uploadID, partNumber, fileName) | |||||
| if err != nil { | if err != nil { | ||||
| ctx.Error(500, fmt.Sprintf("ObsGenMultiPartSignedUrl failed: %v", err)) | ctx.Error(500, fmt.Sprintf("ObsGenMultiPartSignedUrl failed: %v", err)) | ||||
| return | return | ||||
| @@ -636,6 +637,7 @@ func CompleteMultipart(ctx *context.Context) { | |||||
| uuid := ctx.Query("uuid") | uuid := ctx.Query("uuid") | ||||
| uploadID := ctx.Query("uploadID") | uploadID := ctx.Query("uploadID") | ||||
| typeCloudBrain := ctx.QueryInt("type") | typeCloudBrain := ctx.QueryInt("type") | ||||
| fileName := ctx.Query("file_name") | |||||
| err := checkTypeCloudBrain(typeCloudBrain) | err := checkTypeCloudBrain(typeCloudBrain) | ||||
| if err != nil { | if err != nil { | ||||
| @@ -660,7 +662,7 @@ func CompleteMultipart(ctx *context.Context) { | |||||
| return | return | ||||
| } | } | ||||
| } else { | } else { | ||||
| err = storage.CompleteObsMultiPartUpload(uuid, uploadID) | |||||
| err = storage.CompleteObsMultiPartUpload(uuid, uploadID, fileName) | |||||
| if err != nil { | if err != nil { | ||||
| ctx.Error(500, fmt.Sprintf("CompleteObsMultiPartUpload failed: %v", err)) | ctx.Error(500, fmt.Sprintf("CompleteObsMultiPartUpload failed: %v", err)) | ||||
| return | return | ||||
| @@ -679,7 +681,7 @@ func CompleteMultipart(ctx *context.Context) { | |||||
| UUID: uuid, | UUID: uuid, | ||||
| UploaderID: ctx.User.ID, | UploaderID: ctx.User.ID, | ||||
| IsPrivate: true, | IsPrivate: true, | ||||
| Name: ctx.Query("file_name"), | |||||
| Name: fileName, | |||||
| Size: ctx.QueryInt64("size"), | Size: ctx.QueryInt64("size"), | ||||
| DatasetID: ctx.QueryInt64("dataset_id"), | DatasetID: ctx.QueryInt64("dataset_id"), | ||||
| Type: typeCloudBrain, | Type: typeCloudBrain, | ||||
| @@ -287,6 +287,7 @@ export default { | |||||
| size: file.size, | size: file.size, | ||||
| fileType: file.type, | fileType: file.type, | ||||
| type: CloudBrainType, | type: CloudBrainType, | ||||
| file_name: file.name, | |||||
| _csrf: csrf | _csrf: csrf | ||||
| } | } | ||||
| }); | }); | ||||
| @@ -328,6 +329,7 @@ export default { | |||||
| size: partSize, | size: partSize, | ||||
| chunkNumber: currentChunk + 1, | chunkNumber: currentChunk + 1, | ||||
| type: CloudBrainType, | type: CloudBrainType, | ||||
| file_name: file.name, | |||||
| _csrf: csrf | _csrf: csrf | ||||
| } | } | ||||
| }); | }); | ||||