谷粒学院day06笔记

1. 阿里云OSS

1.1 OSS介绍

对象存储服务(Object Storage Service,简称OSS),是阿里云对外提供的海量、安全、低成本、高可靠的云存储服务。用户可以通过简单的REST接口,在任何时间、任何地点、任何互联网设备上进行上传和下载数据,也可以使用WEB页面对数据进行管理。OSS适合存放任意文件类型,适合各种网站、开发企业及开发者使用。

内容存储服务(Content Delivery Network,简称CDN),是一种基于互联网的分布式存储服务,它通过将用户的内容发布到全球范围内的边缘节点,提供了一种高可靠、高可用、低延迟的内容分发服务。

1.2 oss管理控制台使用

1.2.1 创建bucket 类似于文件夹,包

区域:相同区域内的产品内网可以互通

读写权限:私有读写,公共读私有写,公共读写

一般公共读就足够使用了

1.2.2 上传文件

2. java代码操作oss

公司一般不会给控制台权限

2.1 获取oss的key

控制台获取

2.2 根据阿里云官方文档搭建项目环境并使用

学习路径 -> 开发者资源

2.3 具体操作

2.3.1 创建子模块

2.3.1 pom.xml引入依赖


oss的依赖

日期工具类

2.3.2 配置文件

aliyun.oss.file.endpoint=oss-cn-beijing.aliyuncs.com
aliyun.oss.file.keyid=LTAI4G7Q1j8j8j8j8j8j8j8j
aliyun.oss.file.keysecret=
aliyun.oss.file.bucketname=online-education

2.3.3 启动报错解决

  1. 解决方案:

    • 添加上数据库配置

    • 启动类添加属性,默认不去加载数据库配置

      @SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
      
  2. 注解:

    @Component:注入spring容器,可以被扫描到

    @Value:读取配置文件 (属性注入注解)

    @ConfigurationProperties:读取配置文件 (属性注入注解)

  3. 创建常量工具类

    当项目已启动,spring接口,spring加载之后,执行接口一个方法

    创建常量工具类,读取配置文件内容,将配置文件内容赋值给工具类的属性

    @Component
    public class xxxUtils 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;
        // 定义OSSClient实例
        private OSS ossClient;
    
        @Override
        public void afterPropertiesSet() throws Exception {
            // 创建OSSClient实例
            ossClient = new OSSClientBuilder().build(endpoint, keyid, keysecret);
        }
        // 关闭OSSClient
        public void destory() {
            ossClient.shutdown();
        }
        // 上传文件
        public String upload(InputStream inputStream, String module, String fileName) {
            // 上传文件流
            ossClient.putObject(bucketname, module + "/" + fileName, inputStream);
            // 关闭OSSClient
            ossClient.shutdown();
            // 返回上传之后文件的路径
            return "https://" + bucketname + "." + endpoint + "/" + module + "/" + fileName;
        }
    }
    
  4. 存在问题

    • 多次上传同名文件会造成最后一次上传会把之前的文件覆盖,所以一般会在文件名后面加上时间戳或者UUID。
    • 文件分类,不同的文件放在不同的文件夹下,方便管理。可以按用户,日期,文件类型等分类。
    • 代码操作。用joda工具类

3. nginx回顾

3.1 nginx介绍

  • nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。

  • 常见功能:负载均衡反向代理(请求转发),静态资源服务器,动静分离,缓存,防火墙,安全防护,压缩,日志,SSL加密,视频点播,直播等。

  • 什么是请求转发(根据路径匹配不同的服务器)

  • 负载均衡 算法 (轮询,权重,ip_hash)

  • 动静分离(java代码和普通静态(图片等)资源分开进行部署)

3.2 nginx安装

  • 下载地址:http://nginx.org/en/download.html

  • cmd启动nginx, 关闭窗口无法停止,通过命令进行关闭

    nginx.exe -s stop
    
  • 配置

    # 配置文件路径
    nginx/conf/nginx.conf
    
    # http块作用
    在 nginx.conf 文件中,http 块是定义 HTTP 服务器的配置块。在 http 块内部,可以定义多个 server 块,每个 server 块定义了一个虚拟主机。
    
    在一个 server 块内部,可以定义该虚拟主机的监听地址和端口、服务器名称、SSL/TLS 配置、反向代理规则等等。每个 server 块可以使用不同的监听地址和端口,因此可以配置多个虚拟主机。
    
    不同的 server 块可以根据不同的域名或者不同的 IP 地址进行匹配,从而为不同的客户端提供不同的服务。例如,可以配置一个 server 块用于处理 example.com 域名的请求,另一个 server 块用于处理 api.example.com 域名的请求,以此实现虚拟主机的功能。
    
    总之,http.server 就是 nginx 中定义 HTTP 服务器的配置块,其中每个 server 块代表一个虚拟主机,用于处理客户端的请求。
    
    # nginx配置示例
    
    

4. 上传头像前端开发

4.1 上传头像组件

4.2 修复重新上传的bug

5. 多级分类表设计

parent_id 实现

6. 实现easyexcel导入excel数据到数据库

6.1 easyexcel介绍

6.2 easyexcel写操作

文件路径 文件名 sheet 列名 行记录

6.3 easyexcel读操作

  1. 监听器(每次读取都是执行监听器中的方法)

    一行一行读取,每读取一行就会执行一次监听器中的方法

  2. 实现监听器(读取表头,分行读取excel内容,读取完成之后)

6.4 实现用户上传excel文件,导入数据库

二级分类需要用到一级分类的id,所以需要先导入一级分类,再导入二级分类;

posted @ 2023-02-25 18:24  积极向上的徐先生  阅读(42)  评论(0编辑  收藏  举报