【原创】拉勾课程速推指南-阶段四 模块四 轻量级分布式文件系统FastDFS、阿里云OSS云存储平台

文章内容输出来源:拉勾教育Java高薪训练营

学习心得

【拉勾课程速推指南】学习心得

课程介绍

第四阶段 大型分布式存储系统架构进阶
模块四 轻量级分布式文件系统FastDFS、阿里云OSS云存储平台
本模块对分布式文件系统FastDFS集群架构与原理剖析,使用FastDFS+Nginx搭建高吞吐文件服务器,并对阿里云OSS云存储平台系统讲解。

作业内容

作业一:
搭建FastDFS图片服务器,通过http请求可以访问服务器中图片的动态压缩图。具体要求如下:
在Linux系统中安装FastDFS服务器
可以使用FastDFS自带的工具将文件上传到FastDFS,并可以通过http 访问到对应的图片
可以使用GraphicsMagick工具生成缩略图,通过http访问某个图片时,显示其对应的动态压缩图
作业要求:
提供Linux下的安装步骤文档

作业二:
使用SpringBoot和OSS实现图片的上传、下载和删除功能, 具体要求如下:
可以使用postman 发送上传请求 /oss/upload ,实现图片上传到OSS对应的Bucket中
类型检查:必须为 jpg、png 或者 jpeg类型,其它图片类型返回错误提示信息
大小检查:必须小于5M,大于5M时返回错误提示信息
图片名称:生成的文件名,必须保持唯一
可以使用postman 发送下载请求 /oss/download,实现图片下载
可以根据图片名进行文件的下载
可以使用postman 发送删除请求/oss/delete,实现图片删除
可以根据图片名进行文件的删除
1、提供资料:说明文档,验证及讲解视频。
2、讲解内容包含:题目分析、实现思路、环境介绍。

课程目录及观看建议

2倍速模式

  • 课程:2小时
  • 作业:5小时

*** 必看
** 建议看
* 可不看

任务一:轻量级分布式文件系统FastDFS
1.FastDFS课程介绍(05:55)
2.FastDFS基础回顾(16:06)*
3.FastDFS环境搭建和测试(26:21)***
4.FastDFS和Nginx结合(21:54)***
5.Java访问FastDFS(32:53)
6.FastDFS架构详解(12:19)
7.FastDFS设计理念(09:35)
8.文件上传和下载功能原理(19:22)
9.文件同步、删除等功能原理(14:15)
10.FastDFS集群搭建和测试(33:52)
11.FastDFS配置和优化(25:55)
12.SpringBoot访问FastDFS集群(40:08)
13.FastDFS互联网应用实战方案(12:36)***

任务二:阿里云OSS云存储平台
1.OSS课程介绍(09:12)
2.OSS和自建服务器对比(10:06)
3.OSS应用场景和计量计费(09:00)
4.OSS云存储的概念(15:32)*
5.OSS基本功能(20:24)*
6.URL规则防盗链和自定义域名(19:53)
7.日志记录(15:26)
8.权限控制(13:22)
9.OSS开放接口(12:17)
10.错误响应码(09:46)
11.Java访问OSS(21:39)***
12.SpringBoot访问OSS(37:06)***
13.数据处理和CDN(18:14)

注意事项

  • 作业一:
软件版本
FastDFS 5.11
Nginx 1.15.6
fastdfs-nginx-module 1.20
ngx_devel_kit 0.3.0
lua-nginx-module 0.10.9rc7
LuaJIT 2.0.4
GraphicsMagick 1.3.35
  1. FastDFS和GraphicsMagick安装流程见参考资料1、2
  2. 相关软件版本问题,尤其是 lua-nginx-module 0.10.9rc7,否则会出现各种问题。详情见参考资料3。
  3. 动态压缩需要配置nginx路由。详情见参考资料4。
参考资料

如何安装nginx_lua_module模块,升级nginx,nginx-lua-fastdfs-GraphicsMagick动态生成缩略图,实现图片自动裁剪缩放

nginx-lua-fastdfs-GraphicsMagick安装

nginx 中添加 lua 模块,支持lua脚本以及遇到的坑

Nginx+Lua+GraphicsMagick实现图片自动裁剪/缩放、以及定时清理生成的缩略图

  • 作业二:
软件版本
JDK 11
Spring Boot 2.3.1.RELEASE
  Spring Boot Web
Aliyun Oss Sdk 3.10.2
  1. 缺少相关类库包

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依赖(推荐)


    com.aliyun.oss
    aliyun-sdk-oss
    3.10.2


    javax.xml.bind
    jaxb-api
    2.3.1


    com.sun.xml.bind
    jaxb-impl
    3.0.0-M4


    com.sun.xml.bind
    jaxb-core
    3.0.0-M4


    javax.activation
    activation
    1.1.1

  1. 文件上传大小限制

默认1M,需要设置成10M,便于超过5M时提示错误信息。注意Spring Boot版本不同,配置也不同。以下为2.0以上:

spring:
  servlet:
    multipart:
      enabled: true
      max-file-size: 10MB
      max-request-size: 10MB

你可能感兴趣的:(【原创】拉勾课程速推指南-阶段四 模块四 轻量级分布式文件系统FastDFS、阿里云OSS云存储平台)