package com.ruoyi.web.controller.api; import com.aliyun.oss.OSSClient; import com.aliyun.oss.model.ObjectMetadata; import com.aliyun.oss.model.PutObjectRequest; import com.aliyun.oss.model.PutObjectResult; import io.swagger.annotations.ApiOperation; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; @CrossOrigin @RestController @RequestMapping("/base/oss") class OssController { private static final String endpoint = "oss-cn-chengdu.aliyuncs.com"; private static final String accessKeyId = "LTAI5tCQHjSsP7TXuyjSG1PJ"; private static final String accessKeySecret = "RIDXxzOrdMS0V8vQDT53MGvAgsegRV"; private static final String bucketName = "inspectionbucket"; @PostMapping("/upload") @ApiOperation(value = "文件上传",tags = "文件上传") public ResponseEntity upload(@RequestParam("file") MultipartFile file) throws IOException { // 创建 OSSClient 实例 OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret); // 创建 PutObjectRequest 对象 PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, file.getOriginalFilename(), file.getInputStream()); ObjectMetadata metadata = new ObjectMetadata(); // 取消文件缓存,文件每次都会从OSS服务器获取 metadata.setHeader("Cache-Control", "no-cache"); metadata.setHeader("Expires", "0"); // 上传文件 PutObjectResult putObjectResult = ossClient.putObject(putObjectRequest); // 关闭 OSSClient 实例 ossClient.shutdown(); String fileUrl = "https://" + bucketName + "." + endpoint + "/" + file.getOriginalFilename(); return ResponseEntity.ok(fileUrl); } }