fix(uploader): failed to generate upload token for some file types (#2847) (#2900)

* fix(mime): `mimeType` not assigned to new value when is empty

* fix(mime): add fallback mime type
This commit is contained in:
Darren Yu
2025-09-16 10:35:30 +08:00
committed by GitHub
parent 3b8110b648
commit 58ceae9708
7 changed files with 19 additions and 13 deletions

View File

@@ -244,7 +244,7 @@ func (handler *Driver) Put(ctx context.Context, file *fs.UploadRequest) error {
mimeType := file.Props.MimeType
if mimeType == "" {
handler.mime.TypeByName(file.Props.Uri.Name())
mimeType = handler.mime.TypeByName(file.Props.Uri.Name())
}
// 是否允许覆盖
@@ -455,7 +455,7 @@ func (handler Driver) Token(ctx context.Context, uploadSession *fs.UploadSession
mimeType := file.Props.MimeType
if mimeType == "" {
handler.mime.TypeByName(file.Props.Uri.Name())
mimeType = handler.mime.TypeByName(file.Props.Uri.Name())
}
// 初始化分片上传

View File

@@ -219,7 +219,7 @@ func (handler *Driver) Put(ctx context.Context, file *fs.UploadRequest) error {
mimeType := file.Props.MimeType
if mimeType == "" {
handler.mime.TypeByName(file.Props.Uri.Name())
mimeType = handler.mime.TypeByName(file.Props.Uri.Name())
}
_, err := uploader.UploadWithContext(ctx, &s3manager.UploadInput{
@@ -399,7 +399,7 @@ func (handler *Driver) Token(ctx context.Context, uploadSession *fs.UploadSessio
mimeType := file.Props.MimeType
if mimeType == "" {
handler.mime.TypeByName(file.Props.Uri.Name())
mimeType = handler.mime.TypeByName(file.Props.Uri.Name())
}
// 创建分片上传

View File

@@ -240,7 +240,7 @@ func (handler *Driver) Put(ctx context.Context, file *fs.UploadRequest) error {
mimeType := file.Props.MimeType
if mimeType == "" {
handler.mime.TypeByName(file.Props.Uri.Name())
mimeType = handler.mime.TypeByName(file.Props.Uri.Name())
}
// 是否允许覆盖
@@ -450,7 +450,7 @@ func (handler *Driver) Token(ctx context.Context, uploadSession *fs.UploadSessio
mimeType := file.Props.MimeType
if mimeType == "" {
handler.mime.TypeByName(file.Props.Uri.Name())
mimeType = handler.mime.TypeByName(file.Props.Uri.Name())
}
// 初始化分片上传

View File

@@ -223,7 +223,7 @@ func (handler *Driver) Put(ctx context.Context, file *fs.UploadRequest) error {
mimeType := file.Props.MimeType
if mimeType == "" {
handler.mime.TypeByName(file.Props.Uri.Name())
mimeType = handler.mime.TypeByName(file.Props.Uri.Name())
}
err = resumeUploader.CompleteParts(ctx, upToken, upHost, nil, handler.policy.BucketName,
@@ -389,7 +389,7 @@ func (handler *Driver) Token(ctx context.Context, uploadSession *fs.UploadSessio
mimeType := file.Props.MimeType
if mimeType == "" {
handler.mime.TypeByName(file.Props.Uri.Name())
mimeType = handler.mime.TypeByName(file.Props.Uri.Name())
}
uploadSession.UploadID = ret.UploadID

View File

@@ -207,7 +207,7 @@ func (handler *Driver) Put(ctx context.Context, file *fs.UploadRequest) error {
mimeType := file.Props.MimeType
if mimeType == "" {
handler.mime.TypeByName(file.Props.Uri.Name())
mimeType = handler.mime.TypeByName(file.Props.Uri.Name())
}
_, err := uploader.UploadWithContext(ctx, &s3manager.UploadInput{
@@ -344,7 +344,7 @@ func (handler *Driver) Token(ctx context.Context, uploadSession *fs.UploadSessio
mimeType := file.Props.MimeType
if mimeType == "" {
handler.mime.TypeByName(file.Props.Uri.Name())
mimeType = handler.mime.TypeByName(file.Props.Uri.Name())
}
// 创建分片上传

View File

@@ -161,7 +161,7 @@ func (handler *Driver) Put(ctx context.Context, file *fs.UploadRequest) error {
mimeType := file.Props.MimeType
if mimeType == "" {
handler.mime.TypeByName(file.Props.Uri.Name())
mimeType = handler.mime.TypeByName(file.Props.Uri.Name())
}
err := handler.up.Put(&upyun.PutObjectConfig{
@@ -309,7 +309,7 @@ func (handler *Driver) Token(ctx context.Context, uploadSession *fs.UploadSessio
mimeType := file.Props.MimeType
if mimeType == "" {
handler.mime.TypeByName(file.Props.Uri.Name())
mimeType = handler.mime.TypeByName(file.Props.Uri.Name())
}
return &fs.UploadCredential{

View File

@@ -36,5 +36,11 @@ func (d *mimeDetector) TypeByName(p string) string {
return m
}
return mime.TypeByExtension(ext)
m := mime.TypeByExtension(ext)
if m != "" {
return m
}
// Fallback
return "application/octet-stream"
}