From 7d89faff5cce64a1702ebd52918613ce8efcddf2 Mon Sep 17 00:00:00 2001 From: wonder Date: Mon, 25 May 2026 14:58:12 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=B8=83=E7=89=9B=E4=BA=91=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E7=BC=BA=E5=B0=91=20File.Name=20=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit UploadReader 调用时未设置 ObjectOptions.FileName,SDK 内部 PostObject 校验 File.Name 不能为空,返回 missing required field 错误。 从 key 中提取文件名填入 FileName 字段即可。 --- backend/internal/service/storage.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/backend/internal/service/storage.go b/backend/internal/service/storage.go index dbd43d0..da6e3a8 100644 --- a/backend/internal/service/storage.go +++ b/backend/internal/service/storage.go @@ -5,6 +5,7 @@ import ( "context" "fmt" "net/url" + "path/filepath" "strings" "time" @@ -57,6 +58,7 @@ func (s *StorageService) Upload(ctx context.Context, key string, data []byte) (s err = uploadMgr.UploadReader(ctx, bytes.NewReader(data), &uploader.ObjectOptions{ BucketName: s.bucket, ObjectName: &key, + FileName: filepath.Base(key), }, nil) if err != nil { l.Error("qiniu upload failed", "key", key, "error", err)