java配置cdn

本文介绍如何在SpringBoot项目中集成阿里云OSS,包括添加依赖、配置属性、定义上传方法等步骤,实现文件的云端存储。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值