拉勾课程速推指南-阶段四 模块四 轻量级分布式文件系统FastDFS、阿里云OSS云存储平台(2)
文章内容输出来源:拉勾教育Java高薪训练营
学习心得
【拉勾课程速推指南】学习心得
课程介绍
第四阶段 大型分布式存储系统架构进阶
模块四 轻量级分布式文件系统FastDFS、阿里云OSS云存储平台
本模块对分布式文件系统FastDFS集群架构与原理剖析,使用FastDFS+Nginx搭建高吞吐文件服务器,并对阿里云OSS云存储平台系统讲解。
作业内容
作业二:
使用SpringBoot和OSS实现图片的上传、下载和删除功能, 具体要求如下:
可以使用postman 发送上传请求 /oss/upload ,实现图片上传到OSS对应的Bucket中
类型检查:必须为 jpg、png 或者 jpeg类型,其它图片类型返回错误提示信息
大小检查:必须小于5M,大于5M时返回错误提示信息
图片名称:生成的文件名,必须保持唯一
可以使用postman 发送下载请求 /oss/download,实现图片下载
可以根据图片名进行文件的下载
可以使用postman 发送删除请求/oss/delete,实现图片删除
可以根据图片名进行文件的删除
1、提供资料:说明文档,验证及讲解视频。
2、讲解内容包含:题目分析、实现思路、环境介绍。
课程目录及观看建议
2倍速模式:课程时间2小时,作业时间5小时
***
必看 **
建议看 *
可不看
- 任务二:阿里云OSS云存储平台
- OSS课程介绍(09:12)
- OSS和自建服务器对比(10:06)
- OSS应用场景和计量计费(09:00)
- OSS云存储的概念(15:32)
*
- OSS基本功能(20:24)
*
- URL规则防盗链和自定义域名(19:53)
- 日志记录(15:26)
- 权限控制(13:22)
- OSS开放接口(12:17)
- 错误响应码(09:46)
- Java访问OSS(21:39)
***
- SpringBoot访问OSS(37:06)
***
- 数据处理和CDN(18:14)
作业说明
软件版本
JDK 11
Spring Boot 2.3.1.RELEASE
Spring Boot Web
Aliyun Oss Sdk 3.10.2
注意事项:
- 缺少相关类库包
java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
JAXB API是java EE 的API,因此在java SE 9.0 中不再包含这个 Jar 包。
java 9 中引入了模块的概念,默认情况下,Java SE中将不再包含java EE 的Jar包,而在 java6、7、8时关于这个API 都是捆绑在一起的。
两种解决方案:
a. 将jdk降为8
b. 引入JAXB API依赖(推荐)
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.10.2</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>3.0.0-M4</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>3.0.0-M4</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
- 文件上传大小限制
默认1M,需要设置成10M,便于超过5M时提示错误信息。注意Spring Boot版本不同,配置也不同。以下为2.0以上:
spring:
servlet:
multipart:
enabled: true
max-file-size: 10MB
max-request-size: 10MB
作业实现步骤
- 创建Spring Boot项目,引入阿里云OSS依赖包
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.10.2</version>
</dependency>
- 配置yml参数
# 设置spring上传文件大小
spring:
servlet:
multipart:
enabled: true
max-file-size: 10MB
max-request-size: 10MB
# 添加自定义的阿里云OSS参数
custom:
aliyun:
endpoint: https://oss-cn-beijing.aliyuncs.com
access-key-id: LTAI4G52sGc3zraTbCWqnSPB
access-key-secret: x3BrPYSnsUnE7zwsrMWDiqTyWqZT3h
bucket-name: sl-lagou
url-prefix: https://sl-lagou.oss-cn-beijing.aliyuncs.com/
# MB
file-size: 5
编写配置类,读取配置参数
- 编写Contorller
- 编写Service
类型检查:必须为 jpg、png 或者 jpeg类型,其它图片类型返回错误提示信息
大小检查:必须小于5M,大于5M时返回错误提示信息
图片名称:生成的文件名,必须保持唯一
- 测试
-
可以使用postman 发送上传请求 /oss/upload ,实现图片上传到OSS对应的Bucket中
类型检查:必须为 jpg、png 或者 jpeg类型,其它图片类型返回错误提示信息
大小检查:必须小于5M,大于5M时返回错误提示信息
图片名称:生成的文件名,必须保持唯一
类型检查:必须为 jpg、png 或者 jpeg类型,其它图片类型返回错误提示信息
大小检查:必须小于5M,大于5M时返回错误提示信息
-
可以使用postman 发送下载请求 /oss/download,实现图片下载
可以根据图片名进行文件的下载
-
可以使用postman 发送删除请求/oss/delete,实现图片删除
可以根据图片名进行文件的删除