using File.Application.Features.Multipart.Commands;
using File.Application.Features.Multipart.DTOs;
using MediatR;
namespace BuildFlow.Host.Endpoints.file.Multipart;
/// 上传单个分片端点。PUT /api/files/multipart/part。
[Authorize]
///
/// undefined
///
public class UploadPartEndpoint(IMediator mediator) : Endpoint
{
public override void Configure()
{
Put("/files/multipart/part");
Permissions("file:upload");
AllowFileUploads();
}
public override async Task HandleAsync(UploadPartRequest req, CancellationToken ct)
{
await using var stream = req.File.OpenReadStream();
var result = await mediator.Send(new UploadPartCommand(req.ObjectKey,
req.UploadId, req.PartNumber, stream), ct);
await Send.OkAsync(result, ct);
}
}