From 9258bbc3363674b726bce53a2535ac1fd7feb576 Mon Sep 17 00:00:00 2001 From: gpu Date: Wed, 21 Jan 2026 23:55:41 +0800 Subject: [PATCH] 321 --- .gitignore | 6 +- .../Models/Upload/UploadModels.cs | 119 ++++++++++++++++++ 2 files changed, 122 insertions(+), 3 deletions(-) create mode 100644 server/HoneyBox/src/HoneyBox.Admin.Business/Models/Upload/UploadModels.cs diff --git a/.gitignore b/.gitignore index 068756bd..7b6d4765 100644 --- a/.gitignore +++ b/.gitignore @@ -66,9 +66,9 @@ temp/ *.sqlite *.db -# 上传文件目录 -uploads/ -upload/ +# 上传文件目录(只忽略根目录下的) +/uploads/ +/upload/ # 小程序相关 honey_box/unpackage/ diff --git a/server/HoneyBox/src/HoneyBox.Admin.Business/Models/Upload/UploadModels.cs b/server/HoneyBox/src/HoneyBox.Admin.Business/Models/Upload/UploadModels.cs new file mode 100644 index 00000000..3ec978c2 --- /dev/null +++ b/server/HoneyBox/src/HoneyBox.Admin.Business/Models/Upload/UploadModels.cs @@ -0,0 +1,119 @@ +namespace HoneyBox.Admin.Business.Models.Upload; + +/// +/// 上传响应模型 +/// +public class UploadResponse +{ + /// + /// 文件URL + /// + public string Url { get; set; } = string.Empty; + + /// + /// 文件名 + /// + public string FileName { get; set; } = string.Empty; + + /// + /// 文件大小(字节) + /// + public long FileSize { get; set; } +} + +/// +/// 获取预签名上传URL请求 +/// +public class GetPresignedUrlRequest +{ + /// + /// 原始文件名 + /// + public string FileName { get; set; } = string.Empty; + + /// + /// 文件MIME类型 + /// + public string ContentType { get; set; } = string.Empty; + + /// + /// 文件大小(字节) + /// + public long FileSize { get; set; } +} + +/// +/// 预签名上传URL响应 +/// +public class PresignedUrlResponse +{ + /// + /// 预签名上传URL + /// + public string UploadUrl { get; set; } = string.Empty; + + /// + /// 文件最终访问URL + /// + public string FileUrl { get; set; } = string.Empty; + + /// + /// 对象Key(COS路径) + /// + public string ObjectKey { get; set; } = string.Empty; + + /// + /// URL过期时间(秒) + /// + public int ExpiresIn { get; set; } + + /// + /// 存储类型 (1=本地, 3=COS) + /// + public string StorageType { get; set; } = string.Empty; +} + +/// +/// 上传结果(内部使用) +/// +public class UploadResult +{ + /// + /// 是否成功 + /// + public bool Success { get; set; } + + /// + /// 文件URL + /// + public string? Url { get; set; } + + /// + /// 错误信息 + /// + public string? ErrorMessage { get; set; } + + /// + /// 创建成功结果 + /// + public static UploadResult Ok(string url) + { + return new UploadResult + { + Success = true, + Url = url + }; + } + + /// + /// 创建失败结果 + /// + public static UploadResult Fail(string errorMessage) + { + return new UploadResult + { + Success = false, + ErrorMessage = errorMessage + }; + } +}