package com.stylefeng.guns.modular.code.controller;
|
|
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.stereotype.Controller;
|
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.multipart.MultipartFile;
|
import java.io.IOException;
|
|
@CrossOrigin
|
@RestController
|
@RequestMapping("/base/oss")
|
public class OssController {
|
|
private static final String endpoint = "oss-cn-hongkong.aliyuncs.com";
|
private static final String accessKeyId = "LTAI5tQZzqsZYX5gw8yRNchQ";
|
private static final String accessKeySecret = "5yJVdXwRzwPZwKKXp07lRAc7tkTxQp";
|
private static final String bucketName = "bizuphk";
|
|
@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);
|
}
|
|
|
}
|