无关风月
2025-02-19 7eb0c385a3134a0e69860f68bb53caab4414fc2d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
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<String> 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);
    }
 
 
}