LMS.service/LMS.Tools/FileTool/IQiniuService.cs

61 lines
1.8 KiB
C#

using LMS.Repository.DB;
using LMS.Repository.FileUpload;
using Qiniu.Http;
using static LMS.Repository.DTO.FileUploadDto;
namespace LMS.Tools.FileTool
{
public interface IQiniuService
{
/// <summary>
/// 检查文件的字节大小是否符合要求
/// </summary>
/// <param name="fileBytes"></param>
/// <returns></returns>
public Task<UploadResult> CheckFileBytesSize(byte[] fileBytes);
/// <summary>
/// 生成七牛云上传的路径 key
/// </summary>
/// <param name="userId"></param>
/// <param name="fileName"></param>
/// <returns></returns>
string GenerateFileKey(long userId, string fileName);
/// <summary>
/// 计算文件的 SHA1 哈希值
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
string ComputeSHA1Hash(byte[] data);
/// <summary>
/// 获取七牛云的配置 用于上传图片
/// </summary>
/// <returns></returns>
Task<QiniuSettings> InitQiniuSetting();
/// <summary>
/// 生成七牛的上传凭证
/// </summary>
/// <param name="qiniuSettings"></param>
/// <returns></returns>
string GeneratePolicy(QiniuSettings qiniuSettings);
/// <summary>
/// 将 byte 数组上传到七牛云
/// </summary>
/// <param name="fileBytes"></param>
/// <returns></returns>
Task<FileUploads> UploadFileToQiNiu(byte[] fileBytes, long userId, string fileName, string fileKey);
/// <summary>
/// 构建文件的访问 URL
/// </summary>
/// <param name="domain"></param>
/// <param name="fileKey"></param>
/// <returns></returns>
string BuildFileUrl(string domain, string fileKey);
}
}