package org.dromara.demo.controller; import org.dromara.demo.domain.MinioResult; import org.dromara.demo.domain.dto.FileDTO; import org.dromara.demo.domain.dto.MinioVideoResult; import org.dromara.demo.domain.dto.Result; import org.dromara.demo.util.MinioUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import java.util.Objects; /** * @author Satori * @date 2021/10/15 */ @RestController @RequestMapping("/api/v1/file") public class FileController { @Autowired private MinioUtil client; @PostMapping("/upload/image") public Result upload(MultipartFile file) { MinioResult result = client.uploadFile(file, "image"); return Result.success(result); } @PostMapping("/upload/document") public Result publicUpload(MultipartFile file, FileDTO fileDTO) { MinioResult result = client.uploadFile(file, "document"); if (Objects.nonNull(fileDTO.getFileContentType())) { result.setFileContentType(fileDTO.getFileContentType()); } return Result.success(result); } @PostMapping("/upload/video") public Result videoUpload(MultipartFile file) { MinioVideoResult minioVideoResult = new MinioVideoResult(); MinioResult result = client.uploadFile(file, "video"); minioVideoResult.setVideoUrl(result.getUrl()); minioVideoResult.setRealName(file.getOriginalFilename()); return Result.success(minioVideoResult); } }