| @@ -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 | |||
| } | |||
| }); | |||