using LiveForum.Code.Base; using LiveForum.IService.Others; using LiveForum.Model.Dto.Others; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace LiveForum.WebApi.Controllers { /// /// 腾讯云COS相关接口 /// [Route("api/[controller]/[action]")] [ApiController] public class CosController : ControllerBase { private readonly ICosService _cosService; /// /// 构造函数 /// /// COS服务 public CosController(ICosService cosService) { _cosService = cosService; } /// /// 获取COS签名URL /// /// 对象键(文件路径) /// HTTP请求方法,默认PUT /// [HttpGet] [Authorize] public async Task> GetCosSign(string key, string httpMethod = "PUT") { var request = new CosGenerateSignReq { Key = key, HttpMethod = httpMethod }; return await _cosService.GenerateSignURL(request); } /// /// 获取临时密钥 /// /// 文件名 /// 模型名称(文件夹名称),如:images、videos /// [HttpGet] [Authorize] public async Task> GetGenerateTemporaryKey(string fileName = "", string modelName = "") { var request = new CosGenerateTemporaryKeyReq { FileName = fileName, ModelName = modelName }; return await _cosService.GenerateTemporaryKey(request); } } }