Skip to content

Commit

Permalink
阿里云对象存储OSS
Browse files Browse the repository at this point in the history
  • Loading branch information
Q-1515 committed Jul 21, 2022
1 parent 682956f commit a0bc92a
Show file tree
Hide file tree
Showing 3 changed files with 90 additions and 0 deletions.
2 changes: 2 additions & 0 deletions reggie_common/src/main/java/com/reggie/utils/AliOSSUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,14 @@
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import java.io.ByteArrayInputStream;

@Data
@AllArgsConstructor
@Builder
@Slf4j
public class AliOSSUtil {

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package com.reggie.config;

import com.reggie.properties.AliOSSProperties;
import com.reggie.utils.AliOSSUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
* 对象存储配置类
*/
@Configuration
@Slf4j
public class OSSConfiguration {

/**
* 创建对象存储工具类
*
* @param aliOSSProperties 对象存储参数注入
* @return 对象存储
*/
@Bean
public AliOSSUtil aliOSSUtil(AliOSSProperties aliOSSProperties) {
return AliOSSUtil.builder()
.endpoint(aliOSSProperties.getEndpoint())
.accessKeyId(aliOSSProperties.getAccessKeyId())
.accessKeySecret(aliOSSProperties.getAccessKeySecret())
.bucketName(aliOSSProperties.getBucketName())
.build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
package com.reggie.controller.admin;

import com.reggie.constant.MessageConstant;
import com.reggie.result.R;
import com.reggie.utils.AliOSSUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import javax.imageio.ImageIO;
import java.util.UUID;

/**
* 通用接口
*/
@RestController
@RequestMapping("/admin/common")
@Slf4j
@Api(tags = "通用接口")
public class CommonController {
@Autowired
private AliOSSUtil aliOSSUtil; //对象存储工具类注入


@PostMapping("/upload")
@ApiOperation("文件上传")
public R<String> upload(@RequestParam("file") MultipartFile file) {
log.info("文件上传:{}", file);
String fileURL = null;

try {
//通过图片流读取进行图片校验
ImageIO.read(file.getInputStream());

//获取原文件名
String originalFilename = file.getOriginalFilename();

//生成唯一文件名
String fileName = UUID.randomUUID().toString() + originalFilename;

//存入阿里云oss对象存储返回URL
fileURL = aliOSSUtil.upload(file.getBytes(), fileName);
} catch (Exception e) {
log.info("图片保存失败");
return R.error(MessageConstant.UPLOAD_FAILED);
}
return R.success(fileURL);
}


}

0 comments on commit a0bc92a

Please sign in to comment.