12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- package com.backendsys.modules.upload.controller;
- import com.backendsys.modules.common.aspect.SysLog;
- import com.backendsys.modules.common.utils.Result;
- import com.backendsys.modules.upload.entity.MultipartUploadParams;
- import com.backendsys.modules.upload.entity.SysFile;
- import com.backendsys.modules.upload.service.SysFileMultipartService;
- import io.swagger.v3.oas.annotations.Operation;
- import io.swagger.v3.oas.annotations.tags.Tag;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.security.access.prepost.PreAuthorize;
- import org.springframework.validation.annotation.Validated;
- import org.springframework.web.bind.annotation.*;
- import org.springframework.web.multipart.MultipartFile;
- @Validated
- @RestController
- @Tag(name = "上传文件 (分块上传)")
- public class SysFileMultipartController {
- @Autowired
- private SysFileMultipartService sysFileMultipartService;
- /*
- 分块上传的流程:
- 1.初始化分块上传(Initiate Multipart Upload),得到 UploadId。
- 2.使用 UploadId 上传分块(Upload Part)。
- 3.完成分块上传(Complete Multipart Upload)。
- */
- @SysLog("初始化分块上传")
- @Operation(summary = "初始化分块上传")
- @PreAuthorize("@sr.hasPermission('1.1.3')")
- @PostMapping("/api/upload/multipartUploadInit")
- // public Result multipartUploadInit(Long category_id, Integer upload_chunk_count, String md5) {
- public Result multipartUploadInit(@Validated(MultipartUploadParams.Init.class) @RequestBody MultipartUploadParams multipartUploadParams) {
- return Result.success().put("data", sysFileMultipartService.multipartUploadInit(multipartUploadParams));
- }
- @SysLog("上传分块")
- @Operation(summary = "上传分块")
- @PreAuthorize("@sr.hasPermission('1.1.3')")
- @PostMapping("/api/upload/multipartUpload")
- public Result multipartUpload(@RequestParam("file") MultipartFile multipartFile, String upload_id, Integer upload_chunk_index) {
- return Result.success().put("data", sysFileMultipartService.multipartUpload(multipartFile, upload_id, upload_chunk_index));
- }
- @SysLog("合并分块")
- @Operation(summary = "合并分块")
- @PreAuthorize("@sr.hasPermission('1.1.3')")
- @PostMapping("/api/upload/multipartUploadComplete")
- public Result multipartUploadComplete(String upload_id, Integer is_watermark) {
- return Result.success().put("data", sysFileMultipartService.multipartUploadComplete(upload_id, is_watermark));
- }
- @Operation(summary = "查询分块上传情况")
- @PreAuthorize("@sr.hasPermission('1.1.3')")
- @GetMapping("/api/upload/getListParts")
- public Result getListParts(String upload_id, String object_key) {
- return Result.success().put("data", sysFileMultipartService.listParts(upload_id, object_key));
- }
- }
|