java配置cdn

1.引入cdn所需的maven文件;

<dependency>
    <groupId>com.aliyun.oss</groupId>
    <artifactId>aliyun-sdk-oss</artifactId>
    <version>3.8.0</version>
</dependency>

2.定义配置文件

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
@Configuration
@ConfigurationProperties(prefix = "oss")
public class OSSConfig {
    private String endPoint;
    private String accessKey;
    private String accessSecret;
    private String bucketName;
    private String domain;

    public String getEndPoint() {
        return endPoint;
    }

    public void setEndPoint(String endPoint) {
        this.endPoint = endPoint;
    }

    public String getAccessKey() {
        return accessKey;
    }

    public void setAccessKey(String accessKey) {
        this.accessKey = accessKey;
    }

    public String getAccessSecret() {
        return accessSecret;
    }

    public void setAccessSecret(String accessSecret) {
        this.accessSecret = accessSecret;
    }

    public String getBucketName() {
        return bucketName;
    }

    public void setBucketName(String bucketName) {
        this.bucketName = bucketName;
    }

    public String getDomain() {
        return domain;
    }

    public void setDomain(String domain) {
        this.domain = domain;
    }
}
springboot配置文件:
oss:
  endPoint: xxxxxxxx
  accessKey: xxxxxxxx
  accessSecret: xxxxxxx
  bucketName: xxxxxx
  domain: xxxxxx

3.上传文件方法

@RestController
@RequestMapping(value = "/oss")
public class DemoController {
    private OSSService ossService;

    public DemoController(OSSService ossService) { this.ossService = ossService; }

    @PostMapping(value = "/upload")
    public String uploadDemo(@RequestParam("file") MultipartFile file) throws IOException {
        return this.ossService.upload("test", file);
    }

}
/**
 * 上传文件
 */
@Service
public class OSSService {
    private OSSConfig config;

    public OSSService(OSSConfig config) { this.config = config; }

    /**
     * 同步上传
     * @param objectPath 模块名
     * @param file 文件对象
     * @return url
     */
    public String upload(String objectPath, MultipartFile file) throws IOException {
        OSS client = new OSSClientBuilder().build(this.config.getEndPoint(), this.config.getAccessKey(), this.config.getAccessSecret());
        String filename = UUID.randomUUID().toString().replaceAll("-","") + Objects.requireNonNull(file.getOriginalFilename()).substring(file.getOriginalFilename().lastIndexOf("."));
        PutObjectRequest request = new PutObjectRequest(this.config.getBucketName(), objectPath + "/" + filename, new ByteArrayInputStream(file.getBytes()));
        client.putObject(request);
        client.shutdown();
        return this.config.getDomain() + "/" + objectPath + "/" + filename;
    }
/**
 * @desc   图片上传
 * @param  picture
 * @param  file
 * @return com.yunling.common.core.domain.AjaxResult
 */
@PostMapping(value = "/uploadFile")
@ResponseBody
public AjaxResult uploadFile(GoodsPicture picture,@RequestParam("file") MultipartFile file) throws IOException {
    String url=ossService.upload("goods", file);
    if (StringUtils.isNotEmpty(picture.getId())){
        picture.setUrl(url);
        goodsPictureService.updateGoodsPicture(picture);
    } else {
        GoodsInfo goodsInfo=goodsInfoService.selectGoodsInfoById(picture.getGoodsId());
        goodsInfo.setGoodsPic(url);
        goodsInfoService.updateGoodsInfo(goodsInfo);
    }
    return AjaxResult.success("操作成功",url);
}

猜你喜欢

转载自blog.csdn.net/TQGoGo/article/details/105991653
cdn
今日推荐