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