package com.ard.web.controller.storage; import com.ard.common.core.domain.AjaxResult; import com.ard.oss.model.MinioUploadResult; import com.ard.common.utils.file.FileUtils; import com.ard.oss.service.impl.OssServiceContext; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; /** * 文件上传管理接口 * * @author ard */ @Api(tags = "文件上传管理接口") @RestController @RequestMapping("/common") public class FileUploadController { @Resource private OssServiceContext ossService; /** * minio上传文件 */ @ApiOperation("minio文件上传") @PostMapping("/uploadMinio") public AjaxResult uploadFileMinio(@RequestPart MultipartFile file) { try { // 上传并返回新文件名称 String url = ossService.upload(file); MinioUploadResult minioUploadResult = MinioUploadResult.builder() .url(url) .newFileName(FileUtils.getName(url)) .originalFilename(file.getOriginalFilename()) .build(); return AjaxResult.success(minioUploadResult); } catch (Exception e) { return AjaxResult.error(e.getMessage()); } } /** * minio文件上传-指定桶 */ @ApiOperation("minio文件上传-指定桶") @PostMapping("/uploadMinio/{bucketName}") public AjaxResult upload(@RequestPart("file") MultipartFile file, @PathVariable String bucketName) { try { // 上传并返回访问地址 String url = ossService.upload(bucketName,file); MinioUploadResult minioUploadResult = MinioUploadResult.builder() .url(url) .newFileName(FileUtils.getName(url)) .originalFilename(file.getOriginalFilename()) .build(); return AjaxResult.success(minioUploadResult); } catch (Exception e) { return AjaxResult.error(e.getMessage()); } } }