阿里云OSS的使用

配置文件:

aliyun:
  oss:
    endpoint: 使用阿里云OSS存储的节点地址
    accessKeyId: 自己的密钥ID
    accessKeySecret: 密钥
    bucketName: 存储的空间名

对应的POJO类

@Data
@Component
@ConfigurationProperties(prefix = "aliyun.oss")
public class AliOSSPOJO {
    private String endpoint; //阿里云oss地址
    private String accessKeyId; //阿里云oss的id
    private String accessKeySecret; //阿里云oss的密钥
    private String bucketName; //oss的存储空间名
}

将文件上传封装为一个工具类

AliOSSUtils


@Component
public class AliOSSUtils {
    @Autowired
    private AliOSSPOJO aliOSSUtils;
    public String upload(MultipartFile file) throws IOException {
        //创建OSSClient实例
        //填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
        String endpoint = aliOSSUtils.getEndpoint();
        //填写AccessKey信息
        String accessKeyId = aliOSSUtils.getAccessKeyId();
        //填写AccessKey密钥
        String accessKeySecret = aliOSSUtils.getAccessKeySecret();
        //填写Bucket名称
        String bucketName = aliOSSUtils.getBucketName();
        //获取上传的文件的输入流
        InputStream inputStream = file.getInputStream();
        //每次上传的文件随机文件名避免覆盖
        String originalFilename = file.getOriginalFilename();
        String fileName = UUID.randomUUID().toString() + originalFilename.substring(originalFilename.lastIndexOf("."));
        //上传文件到OSS
        OSS build = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
        build.putObject(bucketName, fileName, inputStream);
        //文件访问路径
        String url = endpoint.split("//")[0] + "//"+bucketName+"."+endpoint.split("//")[1]+"/"+fileName;
        build.shutdown();
        return url;
    }
}

 使用

@RestController
public class UploadController {

    @Autowired
    private AliOSSUtils aliOSSUtils;
    @PostMapping("/upload")
    public Result upload(MultipartFile image) throws IOException {
        String upload = aliOSSUtils.upload(image);
        return Result.success(upload);
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值