87 lines
2.6 KiB
C#
87 lines
2.6 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
using Dlhis.Common.FileOperation.Request;
|
|
using Dlhis.Common.FileOperation.Response;
|
|
using Dlhis.Common.FileOperation.Services;
|
|
using Kurisu.Core.DataAccess.Dto;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace Dlhis.Common.FileOperation.Controllers;
|
|
|
|
/// <summary>
|
|
/// 文件操作
|
|
/// </summary>
|
|
[Authorize]
|
|
[Route("api/[controller]")]
|
|
[ApiController]
|
|
public class FileController : ControllerBase
|
|
{
|
|
private readonly IMinioService _minioService;
|
|
private readonly IFileVersionService _fileVersionService;
|
|
|
|
public FileController(IMinioService minioService, IFileVersionService fileVersionService)
|
|
{
|
|
_minioService = minioService;
|
|
_fileVersionService = fileVersionService;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 文件上传
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns>相对路径</returns>
|
|
[HttpPost("{Bucket}/upload")]
|
|
public async Task<string> UploadFileAsync([FromForm] UploadFileReuqest request)
|
|
{
|
|
return await _minioService.UploadFileAsync(request.Bucket, request.File);
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 文件上传(版本)
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[Authorize(Roles = "admin")]
|
|
[HttpPost("{Bucket}/version/upload")]
|
|
[RequestFormLimits(MultipartBodyLengthLimit = int.MaxValue)]
|
|
[RequestSizeLimit(int.MaxValue)]
|
|
public async Task<string> UploadFileAsync([FromForm] FileVersionUploadRequest request)
|
|
{
|
|
return await _fileVersionService.UploadFileAsync(request);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 文件版本分页
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("version/page")]
|
|
public async Task<Pagination<FileVersionResponse>> GetPageAsync([FromQuery] PageDto request)
|
|
{
|
|
return await _fileVersionService.GetPageAsync(request);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 文件版本列表
|
|
/// </summary>
|
|
/// <param name="code"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("version/list")]
|
|
public async Task<List<FileVersionResponse>> GetListByCodeAsync([Required] string code)
|
|
{
|
|
return await _fileVersionService.GetListByCodeAsync(code);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 文件版本最新
|
|
/// </summary>
|
|
/// <param name="code"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("version/last")]
|
|
public async Task<FileVersionResponse> GetLastByCodeAsync([Required] string code)
|
|
{
|
|
return await _fileVersionService.GetLastByCodeAsync(code);
|
|
}
|
|
}
|