This commit is contained in:
2026-06-02 16:25:57 +08:00
24 changed files with 285 additions and 53 deletions
@@ -0,0 +1,23 @@
using FileService.Application.StorageContracts;
using FluentValidation;
namespace FileService.WebApi.Controllers.FileTask
{
public class CompleteTaskRequest
{
public string SessionId { get; set; }
public List<UploadPart> Parts { get; set; }
}
public class CompleteTaskRequestValidator : AbstractValidator<CompleteTaskRequest>
{
public CompleteTaskRequestValidator()
{
RuleFor(x => x.SessionId).NotEmpty()
.NotNull();
RuleFor(x => x.Parts)
.NotNull();
}
}
}
@@ -36,10 +36,29 @@ namespace FileService.WebApi.Controllers.FileTask
return Ok(res);
}
//[HttpPost]
//public async Task<IActionResult> GetUploadUrl()
//{
[HttpGet("Getuploadurl")]
public async Task<IActionResult> GetUploadUrl(string sessionId, int partNum)
{
var userId = User.FindFirstValue(ClaimTypes.NameIdentifier);
var res = await service.GenerateUrlAsync(sessionId, partNum, Guid.Parse(userId));
return Ok(res);
}
//}
[HttpPost("complete")]
public async Task<IActionResult> Complete([FromBody] CompleteTaskRequest request)
{
var userId = User.FindFirstValue(ClaimTypes.NameIdentifier);
var res = await service.CompleteTaskAsync(new UploadTaskCompleteCommand(request.SessionId, Guid.Parse(userId), request.Parts));
return Ok(res);
}
[HttpPost("local/parts/upload")]
public async Task<IActionResult> LocalUpload(string sessionId, int partNumber, IFormFile file)
{
//var userId = User.FindFirstValue(ClaimTypes.NameIdentifier);
var stream = file.OpenReadStream();
var res = await service.UploadPartAsync(new UploadPartCommand(stream, sessionId, partNumber, file.Length));
return Ok(res);
}
}
}