feat: 新增SDK模块、OSS相关功能并优化Redis与代码扩展
1. 新增API版本枚举SDK项,创建SDK基础控制器 2. 添加IList、string扩展方法,新增时间戳扩展工具 3. 新增OSS配置、STS凭证服务、文件处理相关代码 4. 重构Redis缓存组件,替换StackExchange.Redis为CSRedisCore 5. 修复原有Redis操作方法调用,新增基础控制器快捷返回方法 6. 新增阿里云OSS、短信、VOD相关SDK依赖 7. 配置阿里云OSS相关参数到appsettings
This commit is contained in:
@ -60,4 +60,19 @@ public abstract class BaseController : ControllerBase
|
||||
{
|
||||
return BaseResponse<object>.Fail(ResultCode.GLOBAL_ERROR, message);
|
||||
}
|
||||
|
||||
protected IActionResult ApiResult(bool success, string msg)
|
||||
{
|
||||
return success ? Success() : Fail(msg);
|
||||
}
|
||||
|
||||
protected IActionResult Success()
|
||||
{
|
||||
return Ok(BaseResponse.Success());
|
||||
}
|
||||
|
||||
protected IActionResult Fail(string msg)
|
||||
{
|
||||
return Ok(BaseResponse.Fail(msg));
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,52 @@
|
||||
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using QYZH.InteractiveMagazine.Infrastructure.OSS;
|
||||
using QYZH.InteractiveMagazine.Models.Dto;
|
||||
using Yitter.IdGenerator;
|
||||
using static System.Runtime.InteropServices.JavaScript.JSType;
|
||||
|
||||
namespace QYZH.InteractiveMagazine.WebApi.Controllers.SDK
|
||||
{
|
||||
public class OssController : SDKBaseController
|
||||
{
|
||||
private readonly OssService _ossService;
|
||||
|
||||
public OssController(OssService ossService)
|
||||
{
|
||||
this._ossService = ossService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取StsToken
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet, Route("sts")]
|
||||
public async Task<IActionResult> Credentials()
|
||||
{
|
||||
var data = await _ossService.GetSTSToken();
|
||||
return Ok(BaseResponse<Dictionary<string, string>>.Success(data));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 删除oss文件
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost, Route("delete")]
|
||||
public async Task<IActionResult> DelObject(string key)
|
||||
{
|
||||
// 查看用户是否有权删除
|
||||
var ok = _ossService.DeleteObject(key);
|
||||
return ApiResult(ok, "删除文件失败");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取上传路径前缀
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet, Route("getUploadPrefix")]
|
||||
public async Task<BaseResponse> GetUploadPrefix()
|
||||
{
|
||||
return BaseResponse<string>.Success($"temp/{YitIdHelper.NextId()}");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,13 @@
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using QYZH.InteractiveMagazine.Models.Enum;
|
||||
|
||||
namespace QYZH.InteractiveMagazine.WebApi.Controllers.SDK
|
||||
{
|
||||
[Route("api/sdk/[controller]")]
|
||||
[ApiExplorerSettings(GroupName = nameof(ApiVersionEnum.SDK))]
|
||||
[AllowAnonymous]
|
||||
public class SDKBaseController : BaseController
|
||||
{
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user