文章目录

  • 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”服务

步骤:

  1. 申请阿里云账号
  2. 实名认证
  3. 开通“对象存储OSS”服务
  4. 进入管理控制台

详细可以参考: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相关推荐

  1. SpringBoot整合阿里云OSS文件上传、下载、查看、删除

    SpringBoot整合阿里云OSS文件上传.下载.查看.删除 该项目源码地址:https://github.com/ggb2312/springboot-integration-examples ( ...

  2. springboot整合阿里云oss上传的方法示例

    这篇文章主要介绍了springboot整合阿里云oss上传的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 OSS申请和 ...

  3. SpringBoot整合阿里云OSS上传文件

    一.需求分析 文件上传是一个非常常见的功能,就是通过IO流将文件写到另外一个地方,这个地方可以是项目下的某个文件夹里,或者是本地电脑某个盘下面,还可以是云服务OSS里面,这里就是我要讲到的OSS,我写 ...

  4. springBoot 整合阿里云OSS对象存储封装实现类

    OSS对象存储 阿里云提供针对各种存储资源(块.文件和对象)的低成本.高可靠.高可用的存储服务,涵盖数据备份.归档.容灾等场景.本文介绍阿里云各类存储服务及特性的适用场景.性能.安全.接口和费用模型等 ...

  5. SpringBoot整合阿里云OSS,传入文件为MultipartFile格式文件

    我对普通的人类没有兴趣,你们只要是有外星人.未来人.异世界人.超能力者, 就尽管来找我吧!以上!----<凉宫春日的忧郁> 1. 去阿里云开通个人对象存储OSS服务 点击创建Bucket, ...

  6. SpringBoot 系列教程(九十九):SpringBoot整合阿里云OSS实现文件上传,下载,删除功能

    一.前言 之所以写这篇文章呢? 是因为最近在做文件上传时遇到一个问题,就是我们在以前使用传统Spring+SpringMVC+Mybatis框架开发Web项目的时候,都是将项目打包生成一个War包,然 ...

  7. SpringBoot整合阿里云OSS,支持文件上传、下载、删除、加签等操作

    首先附上OSS基本介绍和官方文档链接:https://help.aliyun.com/product/31815.html?spm=ata.21736010.0.0.25d67536bR4cly 另外 ...

  8. SpringBoot整合——阿里云对象存储(OSS)

    SpringBoot整合--阿里云对象存储 1 OSS介绍 在开发应用的过程中,我们经常会有用户需要实名认证之后才能访问的需求. 用户认证需要上传证件图片.首页轮播也需要上传图片,因此我们要做文件服务 ...

  9. SpringBoot整合阿里云视频点播

    文章目录 SpringBoot整合阿里云视频点播 1.准备工作 2.服务端SDK的使用 2.1 导入依赖 2.2 初始化类 2.3 创建读取公共常量的工具类 2.4 获取视频播放地址 2.5 获取视频 ...

最新文章

  1. Java泛型:泛型类、泛型接口和泛型方法
  2. 贝尔实验室:如何让6G成为通用技术
  3. Git push error: Unable to unlink old (Permission denied)
  4. 谨慎Asp.net中static变量的用法
  5. Day14作业 二、有两个List集合怎么取两个无重复的并集
  6. Ubuntu下设置环境变量的三种方法
  7. 福特牵手百度启动L4级自动驾驶联合测试,年底“上路”
  8. 阿里云播放器的官方文档
  9. SVN下载安装、SVN使用详细教程(Window+Linux)
  10. QQ登录界面实现(JAVA)
  11. 多轮检索式对话——【ACL 2017】SMN
  12. 计算机管理中其它设备问号,Win10设备管理器中设备上有白色问号如何解决
  13. 多种隐藏滚动条但是依然可以滚动实现方式
  14. 鸿蒙到底是不是安卓?
  15. 基于I2C协议读取AD值(arm单片机,转换标志位RDY-可中断使用)
  16. 小学教材失实一事体现出僵化的教育思维
  17. 电影网站 php asp,asp电影网址导航大全 V20201218
  18. Mac电脑如何快速回到桌面?
  19. 微信小程序(小游戏)的示例
  20. 基于Android的聊天系统

热门文章

  1. (ORACLE)PL/SQL 编程
  2. MySQL怎么运行的系列(八)14张图说明白MySQL事务原子性和undo日志原理
  3. 如何不再当分母?我告诉你一个方法
  4. java程序发布与部署_java程序UAT的部署
  5. 电脑桌面图标不见了怎么办?两招教你快速恢复
  6. 国产Excel开发组件Spire.XLS【转换】教程(16):在 C#、VB.NET 中将工作表转换为 PDF
  7. 项目名称:银行ATM存取款机系统设计与实现(sql语句模拟操作)
  8. 在线客服系统简介(上篇)
  9. c++ SFML ftp删除文件
  10. 世界上第一个高级语言——FORTRAN