feat: bug-523 支持1GB大文件的分片断点续传

This commit is contained in:
曹鹏飞 2025-07-25 17:21:06 +08:00
parent 7a2b031d43
commit 80564cfcb8
1 changed files with 5 additions and 3 deletions

View File

@ -255,7 +255,9 @@ public class FileController extends ControllerBase {
* @param chunkNumber 分片编号 * @param chunkNumber 分片编号
*/ */
@PostMapping("/multipart/uploadChunk") @PostMapping("/multipart/uploadChunk")
public ApiResult<Void> uploadChunk(@RequestParam("file") MultipartFile file, @RequestParam String uploadId, @RequestParam Integer chunkNumber) throws IOException { public ApiResult<Void> uploadChunk(@Valid @RequestParam("file") @NotNull MultipartFile file
,@Valid @RequestParam @NotBlank String uploadId
,@Valid @RequestParam @NotNull Integer chunkNumber) throws IOException {
String filePath = FILE_PATH_MAP.get(uploadId); String filePath = FILE_PATH_MAP.get(uploadId);
VUtils.trueThrowBusinessError(StrUtil.isBlank(filePath)).throwMessage("文件不存在"); VUtils.trueThrowBusinessError(StrUtil.isBlank(filePath)).throwMessage("文件不存在");
fileUploadService.uploadChunk(file,filePath, uploadId, chunkNumber); fileUploadService.uploadChunk(file,filePath, uploadId, chunkNumber);
@ -268,7 +270,7 @@ public class FileController extends ControllerBase {
* @return 文件url * @return 文件url
*/ */
@PostMapping("/multipart/complete") @PostMapping("/multipart/complete")
public ApiResult<String> completeMultipartUpload(@RequestParam String uploadId) { public ApiResult<String> completeMultipartUpload(@Valid @RequestParam @NotBlank String uploadId) {
String filePath = FILE_PATH_MAP.get(uploadId); String filePath = FILE_PATH_MAP.get(uploadId);
VUtils.trueThrowBusinessError(StrUtil.isBlank(filePath)).throwMessage("文件不存在"); VUtils.trueThrowBusinessError(StrUtil.isBlank(filePath)).throwMessage("文件不存在");
return ApiResult.success(fileUploadService.completeMultipartUpload(filePath, uploadId)); return ApiResult.success(fileUploadService.completeMultipartUpload(filePath, uploadId));
@ -279,7 +281,7 @@ public class FileController extends ControllerBase {
* @param uploadId 上传id * @param uploadId 上传id
*/ */
@PostMapping("/multipart/abort") @PostMapping("/multipart/abort")
public void abortMultipartUpload(@RequestParam String uploadId) { public void abortMultipartUpload(@Valid @RequestParam @NotBlank String uploadId) {
String filePath = FILE_PATH_MAP.get(uploadId); String filePath = FILE_PATH_MAP.get(uploadId);
VUtils.trueThrowBusinessError(StrUtil.isBlank(filePath)).throwMessage("文件不存在"); VUtils.trueThrowBusinessError(StrUtil.isBlank(filePath)).throwMessage("文件不存在");
fileUploadService.abortMultipartUpload(filePath, uploadId); fileUploadService.abortMultipartUpload(filePath, uploadId);