![null](https://i-blog.csdnimg.cn/blog_migrate/39becbfba08d67355c1ba13c71ff61fb.png)
问题场景
一个thymeleaf
项目,上传图片、视频是直接使用Java
代码保存到服务器上
于是服务器压力激增,网页静态资源变得卡顿
于是我们需要将图片、视频上传移植到阿里云OSS上
阿里云对象存储OSS(Object Storage Service)是阿里云提供的海量、安全、低成本、高持久的云存储服务。
一句话描述:它是一个很棒的存取文件的在线服务器
我们可以使用它进行客户端上传,文件不通过服务端也可以上传,这样减轻了我们服务端压力
我们需要一系列配置才可以对接完成,查阅阿里云OSS
官方文档发现:JavaScript客户端签名直传的方式最为简单,但这种方式是有弊端的,客户端通过JavaScript
把存取文件的认证信息写在代码里面有泄露的风险
因此我们采用服务端签名后直传的方式进行上传文件,我们待会儿介绍~
准备工作
登录阿里云官网
将鼠标移至产品,单击对象存储 OSS,打开 OSS 产品详情页面。
在 OSS 产品详情页,单击立即开通。
开通服务后,在 OSS 产品详情页单击管理控制台直接进入 OSS 管理控制台界面。
您也可以单击位于官网首页右上方菜单栏的控制台,进入阿里云管理控制台首页,然后单击左侧的对象存储 OSS 菜单进入 OSS 管理控制台界面。
根据官方文档提供步骤视频可以完成开通、创建Bucket
、进行授权、配置跨域等 我们到阿里云RAM
访问控制台来添加一个用户
![null](https://i-blog.csdnimg.cn/blog_migrate/04821d01c0a88b95688f13cd0f242d84.png)
填入用户账号信息、勾选编程访问后点击确定
![null](https://i-blog.csdnimg.cn/blog_migrate/01681b2372aaff1c8d459b25b61ca189.png)
然后我们点击复制,找个地方粘贴下来我们的AccessKey ID
以及AccessKey Secret
![null](https://i-blog.csdnimg.cn/blog_migrate/d89bcd7c7e4c7370b95798e1f3bfda56.png)
然后我们点击添加权限为该用户授权
![null](https://i-blog.csdnimg.cn/blog_migrate/f894a3bbfcb87cdd0c1e397f58fcdb4c.png)
![null](https://i-blog.csdnimg.cn/blog_migrate/2a7f09219d0987b44b52c7eab65630c4.png)
![null](https://i-blog.csdnimg.cn/blog_migrate/8c464d727f3cf0a83048d012ed85f124.png)
开始对接
官方文档流程图片:![]()
图片介绍
这里可以这么理解:
假设小王接到老板的任务:将这堆货物放到仓库中去,但仓库大门的门禁需要门卡
所以上图中的类比
1:小王去保管室拿门卡
2:小王拿到门卡回来
3:小王搬运货物到仓库,存放货物
因此我们首先先做“保管室”的功能
后端代码实现
这里就是用我们的Java
代码在服务端实现:
引入alicloud-oss
的依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alicloud-oss</artifactId>
<version>2.2.0.RELEASE</version>
</dependency>
application.yml
,注意版本或者依赖不同,配置有可能改变,例如我最下面的Demo
使用的boot
的依赖(配置方式发生了变化,不过我们代码都还是一样的,只是注意@Value需要写对)
spring:
cloud:
alicloud:
access-key: <你的AccessKey>
secret-key: <你的SecretKey>
oss: