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); } }