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);
|
}
|
|
|
}
|