写点什么

【Spring Boot 19】Spring Boot 整合阿里云 OSS 实现云存储

用户头像
极客good
关注
发布于: 刚刚

2、工具类




package com.atguigu.oss.utils;


import org.springframework.beans.factory.InitializingBean;


import org.springframework.beans.factory.annotation.Value;


import org.springframework.stereotype.Component;


//当项目已启动,spring 接口,spring 加载之后,执行接口一个方法


@Component


public class ConstantPropertiesUtils implements InitializingBean {


//读取配置文件内容


@Value("${aliyun.oss.file.endpoint}")


private String endpoint;


@Value("${aliyun.oss.file.keyid}")


private String keyId;


@Value("${aliyun.oss.file.keysecret}")


private String keySecret;


@Value("${aliyun.oss.file.bucketname}")


private String bucketName;


//定义公开静态常量


public static String END_POIND


【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


;


public static String ACCESS_KEY_ID;


public static String ACCESS_KEY_SECRET;


public static String BUCKET_NAME;


@Override


public void afterPropertiesSet() throws Exception {


END_POIND = endpoint;


ACCESS_KEY_ID = keyId;


ACCESS_KEY_SECRET = keySecret;


BUCKET_NAME = bucketName;


}


}


3、service




接口


package com.atguigu.oss.service;


import org.springframework.web.multipart.MultipartFile;


public interface OssService {


String uploadFileAvatar(MultipartFile file);


}


实现类


package com.atguigu.oss.service.impl;


import com.aliyun.oss.OSS;


import com.aliyun.oss.OSSClientBuilder;


import com.atguigu.oss.service.OssService;


import com.atguigu.oss.utils.ConstantPropertiesUtils;


import org.joda.time.DateTime;


import org.springframework.stereotype.Service;


import org.springframework.web.multipart.MultipartFile;


import java.io.InputStream;


import java.util.UUID;


@Service


public class OssServiceImpl implements OssService {


//上传头像到 oss


@Override


public String uploadFileAvatar(MultipartFile file) {


// 工具类获取值


String endpoint = ConstantPropertiesUtils.END_POIND;


String accessKeyId = ConstantPropertiesUtils.ACCESS_KEY_ID;


String accessKeySecret = ConstantPropertiesUtils.ACCESS_KEY_SECRET;


String bucketName = ConstantPropertiesUtils.BUCKET_NAME;


try {


// 创建 OSS 实例。


OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);


//获取上传文件输入流


InputStream inputStream = file.getInputStream();


//获取文件名称


String fileName = file.getOriginalFilename();


//1 在文件名称里面添加随机唯一的值


String uuid = UUID.randomUUID().toString().replaceAll("-","");


// yuy76t5rew01.jpg


fileName = uuid+fileName;


//2 把文件按照日期进行分类


//获取当前日期


// 2019/11/12


String datePath = new DateTime().toString("yyyy/MM/dd");


//拼接


// 2019/11/12/ewtqr313401.jpg


fileName = datePath+"/"+fileName;


//调用 oss 方法实现上传


//第一个参数 Bucket 名称


//第二个参数 上传到 oss 文件路径和文件名称 aa/bb/1.jpg


//第三个参数 上传文件输入流


ossClient.putObject(bucketName,fileName , inputStream);


// 关闭 OSSClient。


ossClient.shutdown();


//把上传之后文件路径返回


//需要把上传到阿里云 oss 路径手动拼接出来


// https://edu-guli-1010.oss-cn-beijing.aliyuncs.com/01.jpg


String url = "https://"+bucketName+"."+endpoint+"/"+fileName;


return url;


}catch(Exception e) {


e.printStackTrace();


return null;


}


}


}


4、controller




package com.atguigu.oss.controller;


import com.atguigu.oss.service.OssService;

用户头像

极客good

关注

还未添加个人签名 2021.03.18 加入

还未添加个人简介

评论

发布
暂无评论
【Spring Boot 19】Spring Boot整合阿里云OSS实现云存储