Browse Source

mod upload file_name

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

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

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


+ 8
- 6
routers/repo/attachment.go View File

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


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

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


Loading…
Cancel
Save