| | |
| | | package com.stylefeng.guns.modular.api; |
| | | |
| | | import com.aliyun.oss.OSS; |
| | | import com.aliyun.oss.OSSClient; |
| | | import com.aliyun.oss.OSSClientBuilder; |
| | | import com.aliyun.oss.model.OSSObject; |
| | | import com.aliyun.oss.model.ObjectMetadata; |
| | | import com.aliyun.oss.model.PutObjectRequest; |
| | | import com.aliyun.oss.model.PutObjectResult; |
| | | import com.stylefeng.guns.modular.file.OSSService; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.http.ResponseEntity; |
| | | import org.springframework.util.StreamUtils; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | |
| | | @RestController |
| | | @RequestMapping("") |
| | | public class FileController { |
| | | |
| | | @Autowired |
| | | private OSSService ossService; |
| | | |
| | | 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("/base/files/upload") |
| | | @ApiOperation(value = "文件上传", tags = {"文件上传"}) |
| | | public String uploadFile(@RequestParam("file") MultipartFile file) { |
| | | return ossService.uploadFile(file); |
| | | public String uploadFile(@RequestParam("file") MultipartFile file) throws IOException { |
| | | // 获取原始文件名 |
| | | String originalFilename = file.getOriginalFilename(); |
| | | // 提取文件后缀 |
| | | if (originalFilename != null && originalFilename.contains(".")) { |
| | | System.err.println(originalFilename.substring(originalFilename.lastIndexOf("."))); |
| | | } |
| | | // 创建 OSSClient 实例 |
| | | OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret); |
| | | long l = System.currentTimeMillis(); |
| | | // 创建 PutObjectRequest 对象 |
| | | PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, String.valueOf(l)+"."+originalFilename.substring(originalFilename.lastIndexOf(".") + 1), 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 + "/" |
| | | + String.valueOf(l) |
| | | +"."+originalFilename.substring(originalFilename.lastIndexOf(".")+ 1); |
| | | return fileUrl; |
| | | } |
| | | |
| | | // @ApiOperation(value = "服务端上传", notes = "服务端上传") |