文章目录

  • 前言
  • 第1集 分布式文件存储业界常见解决方案介绍
  • 第2集 阿里云OSS分布式对象存储介绍开通
  • 第3集 权限知识 RBAC-ACL模式应用之阿里云RAM访问控制
  • 第4集 阿里云OSS客户端SDK集成和上传组件功能开发
  • 第5集 账号微服务头像上传阿里云OSS接口和PostMan测试

前言

小滴课堂,旨在让编程不在难学,让技术与生活更加有趣。 随着互联网+的时代,在线教育技术越来越便捷,小滴课堂依托在线教育时间以及空间上的便利,为广大IT从业者提供了更为方便、快捷的学习交流途径、提供大量高质量的IT在线课程。更多教程请访问xdclass.net(添加VX:xdclass99)

第1集 分布式文件存储业界常见解决方案介绍

简介:分布式文件存储常见解决方案介绍

  • 目前业界比较多这个解决方案,这边就挑选几个介绍下

    • MinIO
    是在 Apache License v2.0 下发布的对象存储服务器,学习成本低,安装运维简单,主流语言的客户端整合都有, 号称最强的对象存储文件服务器,且可以和容器化技术docker/k8s等结合,社区活跃但不够成熟,业界参考资料较少官网:https://docs.min.io/cn/
    
    • FastDFS
    一个开源的轻量级分布式文件系统,比较少的客户端可以整合,目前主要是C和java客户端,在一些互联网创业公司中有应用比较多,没有官方文档,社区不怎么活跃.
    架构+部署结构复杂,出问题定位比较难定位,可以说是fastdfs零件的组装过程,需要去理解fastDFS的架构设计,才能够正确的安装部署
    
    • 云厂商

      • 阿里云OSS

      • 七牛云

      • 腾讯云

      • 亚马逊云

      • CDN最强:Akamai https://www.akamai.com/cn

  • 选云厂商理由

    • 优点:开发简单,功能强大,容易维护(不同网络下图片质量、水印、加密策略、扩容、加速)
    • 缺点:要钱, 个性化处理,未来转移比较复杂,不排除有些厂商会提供一键迁移工具
  • 选开源MinIO的理由

    • 优点:功能强大、可以根据业务做二次的定制,新一代分布式文件存储系统,容器化结合强大,更重要的是免费(购买磁盘、内存、带宽)
    • 缺点:自己需要有专门的团队进行维护、扩容等
  • 文件上传流程

    • web控制台
    • 前端->后端程序->阿里云OSS

第2集 阿里云OSS分布式对象存储介绍开通

简介:阿里云OSS对象存储介绍和开通

  • 阿里云OSS介绍
对象存储OSS(Object Storage Service)是阿里云提供的海量、安全、低成本、高持久的云存储服务。其数据设计持久性不低于99.9999999999%(12个9),服务设计可用性不低于99.995%。OSS具有与平台无关的RESTful API接口,您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。提供标准、低频访问、归档和冷归档四种存储类型,全面覆盖从热到冷的各种数据存储场景:
标准存储类型 高持久、高可用、高性能的对象存储服务,支持频繁的数据访问。是各种社交、分享类的图片、音视频应用、大型网站、大数据分析的合适选择。
低频访问存储类型 适合长期保存不经常访问的数据(平均每月访问频率1到2次)。存储单价低于标准类型,适合各类移动应用、智能设备、企业数据的长期备份,支持实时数据访问。
归档存储类型 适合需要长期保存(建议半年以上)的归档数据,在存储周期内极少被访问,数据进入到可读取状态需要1分钟的解冻时间。适合需要长期保存的档案数据、医疗影像、科学资料、影视素材。
冷归档存储类型 适合需要超长时间存放的极冷数据。例如因合规要求需要长期留存的数据、大数据及人工智能领域长期积累的原始数据、影视行业长期留存的媒体资源、在线教育行业的归档视频等。
  • 开通阿里云OSS

    • 有阿里云账号、实名认证

    • OSS介绍:https://www.aliyun.com/product/oss

    • OSS控制台:https://oss.console.aliyun.com/bucket

    • 学习路径:https://help.aliyun.com/learn/learningpath/oss.html

  • 开通后的操作

    • 创建Bucket
    • 上传文件
    • 访问文件

第3集 权限知识 RBAC-ACL模式应用之阿里云RAM访问控制

简介:权限知识 RBAC-ACL模式应用之阿里云RAM访问控制

  • ACL: Access Control List 访问控制列表

    • 以前盛行的一种权限设计,它的核心在于用户直接和权限挂钩
    • 优点:简单易用,开发便捷
    • 缺点:用户和权限直接挂钩,导致在授予时的复杂性,比较分散,不便于管理
    • 例子:常见的文件系统权限设计, 直接给用户加权限
  • RBAC: Role Based Access Control

    • 基于角色的访问控制系统。权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限
    • 优点:简化了用户与权限的管理,通过对用户进行分类,使得角色与权限关联起来
    • 缺点:开发对比ACL相对复杂
    • 例子:基于RBAC模型的权限验证框架与应用 Apache Shiro、spring Security
  • 总结:不能过于复杂,规则过多,维护性和性能会下降, 更多分类 ABAC、PBAC等

  • RAM权限介绍

    • 阿里云用于各个产品的权限,基于RBAC、ACL模型都有,进行简单管理账号、统一分配权限、集中管控资源,从而建立安全、完善的资源控制体系。

    • 众多产品,一般采用子账号进行分配权限,防止越权攻击

  • 建立用户,勾选编程访问(保存accessKey和accessSecret,只出现一次)

    • 用户登录名称 dcloud_link@1701673122790560.onaliyun.com
      AccessKey ID : LTAI5tHVGvYw7twoVFyruB1H
      AccessKey Secret : r4d0EudzSvPfVMb9Zp0TfmsE32RXmN
  • 为新建用户授权OSS全部权限

第4集 阿里云OSS客户端SDK集成和上传组件功能开发

简介:阿里云OSS对象存储客户端集成和测试服务

  • 添加阿里云OSS的SDK

    • 地址:https://help.aliyun.com/document_detail/32008.html

    • 添加maven依赖

      • 底层聚合工程添加版本
       <!-- OSS各个项目单独加依赖,根据需要进行添加--><dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.10.2</version></dependency>
      
      • 账号微服务添加
       <!-- OSS各个项目单独加依赖,根据需要进行添加--><dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId></dependency>
      
  • 账号微服务配置OSS

#阿里云OSS配置
aliyun:oss:endpoint: oss-cn-guangzhou.aliyuncs.comaccess-key-id: LTAI5tHVGvYw7twoVFyruB1Haccess-key-secret: r4d0EudzSvPfVMb9Zp0TfmsE32RXmNbucketname: dcloud-link
  • 新建配置类 (配置里面的横杠会,自动转驼峰)
@ConfigurationProperties(prefix = "aliyun.oss")
@Configuration
@Data
public class OSSConfig {private String endpoint;private String accessKeyId;private String accessKeySecret;private String bucketname;
}
  • 开发controller

  • 开发service

@Service
@Slf4j
public class FileServiceImpl implements FileService {@Autowiredprivate OSSConfig ossConfig;@Overridepublic String uploadUserImg(MultipartFile file) {//获取相关配置String bucketname = ossConfig.getBucketname();String endpoint = ossConfig.getEndpoint();String accessKeyId = ossConfig.getAccessKeyId();String accessKeySecret = ossConfig.getAccessKeySecret();//创建OSS对象OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);//获取原生文件名  xxx.jpgString originalFileName = file.getOriginalFilename();//JDK8的日期格式LocalDateTime ldt = LocalDateTime.now();DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd");//拼装路径,oss上存储的路径  user/2022/12/1/sdfdsafsdfdsf.jpgString folder = dtf.format(ldt);String fileName = CommonUtil.generateUUID();String extension = originalFileName.substring(originalFileName.lastIndexOf("."));// 在OSS上的bucket下创建 user 这个文件夹String newFileName = "user/"+folder+"/"+fileName+ extension;try {PutObjectResult putObjectResult = ossClient.putObject(bucketname,newFileName,file.getInputStream());//拼装返回路径if(putObjectResult != null){String imgUrl = "https://"+bucketname+"."+endpoint+"/"+newFileName;return imgUrl;}} catch (IOException e) {log.error("文件上传失败:{}",e);} finally {//oss关闭服务,不然会造成OOMossClient.shutdown();}return null;}
}

第5集 账号微服务头像上传阿里云OSS接口和PostMan测试

简介: 账号微服务头像上传阿里云OSS接口和PostMan测试

  • 文件上传流程

    • 先上传文件,返回url地址,再和普通表单一并提交(推荐这种,更加灵活,失败率低)
    • 文件和普通表单一并提交(设计流程比较多,容易超时和失败)
  • 注意:默认SpringBoot最大文件上传是1M,大家测试的时候记得关注下

  • 开发controller

    • @requestPart注解 接收文件以及其他更为复杂的数据类型
   /*** 上传用户头像** 默认文件大小 1M,超过会报错** @param file* @return*/@PostMapping(value = "upload")public JsonData uploadHeaderImg(@RequestPart("file") MultipartFile file){String result = fileService.uploadUserHeadImg(file);return result != null?JsonData.buildSuccess(result):JsonData.buildResult(BizCodeEnum.FILE_UPLOAD_USER_IMG_FAIL);}

海量数据大课学习笔记(12)-账号微服务-阿里云OSS接入实战-小滴课堂相关推荐

  1. 海量数据大课学习笔记(8)-账号微服务注册模块+短信验证码+阿里云OSS开发实战-小滴课堂

    文章目录 前言 第1集 账号微服务注册功能和流程介绍 第2集 第三方短信验证码平台接入申请操作指引 第3集 账号微服务短信验证码发送工具类封装实战 第4集 账号微服务短信验证码发送工具类单元测试 前言 ...

  2. 海量数据大课学习笔记(7)-商用短链平台实战-账号微服务+流量包设计-滴课堂

    文章目录 前言 第1集 账号微服务和流量包数据库表+索引规范讲解<上> 第2集 账号微服务和流量包数据库表+索引规范讲解<下> 第3集 账号微服务-流量包业务模型概念补充 第4 ...

  3. 学习笔记:SpringCloud 微服务技术栈_实用篇①_基础知识

    若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 前言 学习视频链接 SpringCloud + RabbitMQ + Docker + Redis + 搜 ...

  4. 商用短链平台_第8章_ 账号微服务注册模块+短信验证码+阿里云OSS开发实战

    商用短链平台_第8章_ 账号微服务注册模块+短信验证码+阿里云OSS开发实战 文章目录 商用短链平台_第8章_ 账号微服务注册模块+短信验证码+阿里云OSS开发实战 第八章 账号微服务注册模块+短信验 ...

  5. 海量数据大课学习笔记(4)-商⽤短链平台-功能需求介绍和微服务拆分讲解-小滴课堂

    文章目录 前言 第1集 学以致用-商用短链平台需求文档拆分和总结 第2集 商用短链平台-微服务拆分和技术栈版本说明 第3集 商用短链平台-业务架构图讲解 前言 小滴课堂,旨在让编程不在难学,让技术与生 ...

  6. 海量数据大课学习笔记(6)-短链平台项目创建+git代码管理+开发分层规范讲解--小滴课堂

    文章目录 前言 第1集 短链平台实战-Maven聚合工程创建微服务项目 第2集 Gitee仓库介绍和项目纳入版本管理+ignore文件配置 第3集 阿里编码规范里面Manager分层介绍-和开发规范说 ...

  7. 海量数据大课学习笔记(5)-阿里云Linux服务器选配和常用中间件环境安装-小滴课堂

    文章目录 前言 第1集 云服务器配置和搭建Docker相关讲解 第2集 云服务器基础设施安装之Mysql8.0+Redis6.X安装 第3集 云服务器基础设施安装之Nacos2.x+Mysql8配置持 ...

  8. 海量数据大课学习笔记(2)-不在其位要谋其政,技术Leader能力模型提升-小滴课堂

    文章目录 前言 第1集 互联网大厂里 技术Leader的能力模型-不单写代码 第2集 技术人的产品运营能力提升-竞品分析 第3集 跳出自己的技术思维模型-上司给你团队安排任务 前言 小滴课堂,旨在让编 ...

  9. 学习笔记:SpringCloud 微服务技术栈_实用篇②_黑马旅游案例

    若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 前言 学习视频链接 SpringCloud + RabbitMQ + Docker + Redis + 搜 ...

最新文章

  1. img 标签 访问图片 返回403 forbidden问题
  2. 正则表达式及shell
  3. linux php cgi.sock,nginx中unix:/tmp/php-cgi.sock错误解决解决
  4. 【AI视野·今日NLP 自然语言处理论文速览 第二十八期】Wed, 1 Dec 2021
  5. 如何提高JVM的性能?
  6. QML 读取本地文件内容
  7. mysql替换字段的部分数据
  8. android gridview滑动监听,Android GridView 滑动条设置一直显示状态(推荐)
  9. python全免费教程-python教程免费
  10. unity3d面试题
  11. mbot编程机器人怎么连接蓝牙_STEAM教育机器人搭建指南,mBot入门级编程机器人搭建教程...
  12. 【学习笔记】文献检索课程总结
  13. 博主已开启评论精选什么意思_什么叫独立站?
  14. 自然语言处理之分词、命名主体识别、词性、语法分析-stanfordcorenlp-NER(二)
  15. USB TO I2C(上海同旺电子)调试器调试LM75A--TI
  16. 屏蔽CSDN广告插件 - Chrome
  17. 人工智能行业每日必读(02·03)
  18. 全息网御上榜《CCSIP 2022中国网络安全产业全景图》
  19. Android隐藏和显示输入法
  20. 【LiteOS】小白进阶之系统移植配置解析

热门文章

  1. 抠汗毛、发丝简直弱爆了,这款抠图神器什么都能抠!
  2. java如何开发视频软件_如何快速实现视频截图?很多人都在使用的一款软件
  3. 自动驾驶虚拟仿真技术
  4. U盘重装系统时未发现U盘标志解决方法
  5. 数码时钟(图片实现)
  6. 如何基于 Apache Doris 与 Apache Flink 快速构建极速易用的实时数仓
  7. html 用函数画圆,JavaScript在网页中画圆的函数arc使用方法
  8. ROCm环境下安装tvm
  9. QT 绘制圆角边框存在圆角加粗问题,使用反锯齿无效
  10. 爬虫工具之selenium(五)-建立代理IP池