SpringBoot整合阿里云OSS
文章目录
- SpringBoot整合阿里云OSS
- 1.准备工作
- 1.1 开通“对象存储OSS”服务
- 1.2 创建Bucket
- 1.3 创建RAM子用户
- 2.SpringBoot整合阿里云OSS
- 2.1 创建SpringBoot项目
- 2.2 配置application.properties
- 2.3 创建常量读取工具类
- 2.4 上传图片至阿里云
- 2.5 使用swagger测试
SpringBoot整合阿里云OSS
为了解决海量数据存储与弹性扩容,项目中我们采用云存储的解决方案- 阿里云OSS
1.准备工作
1.1 开通“对象存储OSS”服务
步骤:
- 申请阿里云账号
- 实名认证
- 开通“对象存储OSS”服务
- 进入管理控制台
详细可以参考:OSS的购买和配置
1.2 创建Bucket
进入到管理控制台的Bucket列表创建一个Bucket
:
如下:
1.3 创建RAM子用户
创建操作阿里云OSS许可证(阿里云颁发id和秘钥):
创建AccessKey
:
2.SpringBoot整合阿里云OSS
官方文档参考:对象存储OSS Java SDK
2.1 创建SpringBoot项目
导入依赖:
<dependencies><!--aliyunOSS--><dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>2.8.3</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency>
</dependencies
2.2 配置application.properties
进入到对应的Bucket列表查看地域节点:
#服务端口
server.port=8002
#服务名
spring.application.name=service-oss
#环境设置:dev、test、prod
spring.profiles.active=dev#阿里云 OSS
#不同的服务器,地址不同
aliyun.oss.file.endpoint=oss-cn-beijing.aliyuncs.com
aliyun.oss.file.keyid=LTAI5tGxxxxK4aAa
aliyun.oss.file.keysecret=zE4nEzmcUxxWRk0tytJKD
#bucket可以在控制台创建,也可以使用java代码创建
aliyun.oss.file.bucketname=xppll
2.3 创建常量读取工具类
创建常量读取工具类ConstantPropertiesUtils
:
/*** @author xppll* @date 2021/12/2 19:11*/
@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_POINT;public static String ACCESS_KEY_ID;public static String ACCESS_KEY_SECRET;public static String BUCKET_NAME;@Overridepublic void afterPropertiesSet() throws Exception {END_POINT = endpoint;ACCESS_KEY_ID = keyId;ACCESS_KEY_SECRET = keySecret;BUCKET_NAME = bucketName;}
}
2.4 上传图片至阿里云
controller
层:
/*** @author xppll* @date 2021/12/2 19:36*/
@CrossOrigin
@RestController
@RequestMapping("eduoss/fileoss")
public class OssController {@Autowiredprivate OssService ossService;//上传头像,返回图片的url给@PostMappingpublic R uploadOssFile(MultipartFile file){//获取上传文件 MultipartFile//返回图片在oss上的路径String url = ossService.uploadFileAvatar(file);return R.ok().data("url",url);}
}
service
层:
/*** @author xppll* @date 2021/12/2 19:36*/
@Service
public class OssServiceImpl implements OssService {@Overridepublic String uploadFileAvatar(MultipartFile file) {String endpoint = ConstantPropertiesUtils.END_POINT;String accessKeyId = ConstantPropertiesUtils.ACCESS_KEY_ID;String accessKeySecret = ConstantPropertiesUtils.ACCESS_KEY_SECRET;String bucketName = ConstantPropertiesUtils.BUCKET_NAME;String url = null;try {//创建OSSClient实例。OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);//获取上传文件输入流InputStream inputStream = file.getInputStream();//获取文件名称String fileName = file.getOriginalFilename();//保证文件名唯一,去掉uuid中的'-'String uuid = UUID.randomUUID().toString().replaceAll("-", "");fileName = uuid + fileName;//把文件按日期分类,构建日期路径:avatar/2019/02/26/文件名String datePath = new DateTime().toString("yyyy/MM/dd");//拼接fileName=datePath+"/"+fileName;//调用oss方法上传到阿里云//第一个参数:Bucket名称//第二个参数:上传到oss文件路径和文件名称//第三个参数:上传文件输入流ossClient.putObject(bucketName, fileName, inputStream);//把上传后把文件url返回//https://xppll.oss-cn-beijing.aliyuncs.com/01.jpgurl = "https://" + bucketName + "." + endpoint + "/" + fileName;//关闭OSSClientossClient.shutdown();} catch (IOException e) {e.printStackTrace();}return url;}
}
2.5 使用swagger测试
上传成功,并实现了日期分类:
最后喜欢的小伙伴,记得三连哦!
SpringBoot整合阿里云OSS相关推荐
- SpringBoot整合阿里云OSS文件上传、下载、查看、删除
SpringBoot整合阿里云OSS文件上传.下载.查看.删除 该项目源码地址:https://github.com/ggb2312/springboot-integration-examples ( ...
- springboot整合阿里云oss上传的方法示例
这篇文章主要介绍了springboot整合阿里云oss上传的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 OSS申请和 ...
- SpringBoot整合阿里云OSS上传文件
一.需求分析 文件上传是一个非常常见的功能,就是通过IO流将文件写到另外一个地方,这个地方可以是项目下的某个文件夹里,或者是本地电脑某个盘下面,还可以是云服务OSS里面,这里就是我要讲到的OSS,我写 ...
- springBoot 整合阿里云OSS对象存储封装实现类
OSS对象存储 阿里云提供针对各种存储资源(块.文件和对象)的低成本.高可靠.高可用的存储服务,涵盖数据备份.归档.容灾等场景.本文介绍阿里云各类存储服务及特性的适用场景.性能.安全.接口和费用模型等 ...
- SpringBoot整合阿里云OSS,传入文件为MultipartFile格式文件
我对普通的人类没有兴趣,你们只要是有外星人.未来人.异世界人.超能力者, 就尽管来找我吧!以上!----<凉宫春日的忧郁> 1. 去阿里云开通个人对象存储OSS服务 点击创建Bucket, ...
- SpringBoot 系列教程(九十九):SpringBoot整合阿里云OSS实现文件上传,下载,删除功能
一.前言 之所以写这篇文章呢? 是因为最近在做文件上传时遇到一个问题,就是我们在以前使用传统Spring+SpringMVC+Mybatis框架开发Web项目的时候,都是将项目打包生成一个War包,然 ...
- SpringBoot整合阿里云OSS,支持文件上传、下载、删除、加签等操作
首先附上OSS基本介绍和官方文档链接:https://help.aliyun.com/product/31815.html?spm=ata.21736010.0.0.25d67536bR4cly 另外 ...
- SpringBoot整合——阿里云对象存储(OSS)
SpringBoot整合--阿里云对象存储 1 OSS介绍 在开发应用的过程中,我们经常会有用户需要实名认证之后才能访问的需求. 用户认证需要上传证件图片.首页轮播也需要上传图片,因此我们要做文件服务 ...
- SpringBoot整合阿里云视频点播
文章目录 SpringBoot整合阿里云视频点播 1.准备工作 2.服务端SDK的使用 2.1 导入依赖 2.2 初始化类 2.3 创建读取公共常量的工具类 2.4 获取视频播放地址 2.5 获取视频 ...
最新文章
- Java泛型:泛型类、泛型接口和泛型方法
- 贝尔实验室:如何让6G成为通用技术
- Git push error: Unable to unlink old (Permission denied)
- 谨慎Asp.net中static变量的用法
- Day14作业 二、有两个List集合怎么取两个无重复的并集
- Ubuntu下设置环境变量的三种方法
- 福特牵手百度启动L4级自动驾驶联合测试,年底“上路”
- 阿里云播放器的官方文档
- SVN下载安装、SVN使用详细教程(Window+Linux)
- QQ登录界面实现(JAVA)
- 多轮检索式对话——【ACL 2017】SMN
- 计算机管理中其它设备问号,Win10设备管理器中设备上有白色问号如何解决
- 多种隐藏滚动条但是依然可以滚动实现方式
- 鸿蒙到底是不是安卓?
- 基于I2C协议读取AD值(arm单片机,转换标志位RDY-可中断使用)
- 小学教材失实一事体现出僵化的教育思维
- 电影网站 php asp,asp电影网址导航大全 V20201218
- Mac电脑如何快速回到桌面?
- 微信小程序(小游戏)的示例
- 基于Android的聊天系统
热门文章
- (ORACLE)PL/SQL 编程
- MySQL怎么运行的系列(八)14张图说明白MySQL事务原子性和undo日志原理
- 如何不再当分母?我告诉你一个方法
- java程序发布与部署_java程序UAT的部署
- 电脑桌面图标不见了怎么办?两招教你快速恢复
- 国产Excel开发组件Spire.XLS【转换】教程(16):在 C#、VB.NET 中将工作表转换为 PDF
- 项目名称:银行ATM存取款机系统设计与实现(sql语句模拟操作)
- 在线客服系统简介(上篇)
- c++ SFML ftp删除文件
- 世界上第一个高级语言——FORTRAN