首页 > 编程语言 >Java后端tlias员工部门管理-前后端联调-阿里云OSS-5

Java后端tlias员工部门管理-前后端联调-阿里云OSS-5

时间:2024-07-10 14:55:23浏览次数:23  
标签:Java String tlias OSS private oss org import 联调

当完成了员工和部门管理的两大模块的所有基本功能,那么我们接下来就先进行yml文件配置。

Yml文件配置

为什么要换

我们需要把这个application.properties配置文件改成application.yml因为对比了其他的配置文件的格式,有诸如一下优点

中文变成???

那么我们进入application.properties,中文变成了????这是因为我们的配置文件的编码不是UTF-8的格式,尽管你右下角是UTF-8,但是配置文件不是默认的UTF-8

所以我们只需要在IDEA以此打开Settings-->Editor-->File Encodings

把下面四个都改成UTF-8,钩也勾上去,然后你再将将问号改为你需要的汉字。

重启IDEA,再次查看你的.properties文件就会发现再没有变成问号了

但是请注意:这个修改方法只能用于修改该项目,不能完全改变IDEA的编码格式,新建一个项目会发现编码格式又变回默认的GBK 

想要完全更改需要先关闭项目,选择全局配置

 然后再像刚才那样选择UTF-8,勾选,就可以了

这时候再打开你的项目,再次查看你的.properties文件就会发现再没有变成问号了

文件自动转换成yml

当里面的配置文件很多的时候。手写肯定耗时间,我们下载这个插件

如果下载失败没关系,第二天再试试说不定就行了。因为我们访问的是海外的网,网速会很慢,而且会被限制。除非你有梯子

然后右键点击文件,选择Convert那个第一个选项,就可以自动转换成yml格式的文件了

 如图

阿里云OSS

我们前端保存的图片会去哪,我们本地的数据库吗?那么当有许多人用你这台服务器,那你的电脑不久很快没有空间了。所以我们可以把图片保存到云服务器上来存储。

 这里我以阿里云OSS为例。

浏览器搜索阿里云,然后登录,点击如下图的控制台

将鼠标移至产品,找到并单击对象存储OSS,打开OSS产品详情页面。在OSS产品详情页中的单击立即开通。

 点击对象存储服务OSS

 他会弹出这个界面,也可能没弹出,你就开通一下就行了(没要你交钱)

这时候你点击bucket列表创建bucket

 如下图,其他的默认就行,就是你的写取信必须是公共读

然后点击SDK下载,选择SDK示例,然后在文档中心打开

然后选择java,先选择安装,因为我是JDK19,所以上下两个的配置我都要复制到pom.xml文件当中

如图所示。记得点击右上角的maven刷新!

然后在简单上传选择文件上传

 

直接把那段代码复制,在项目的本地测试类中新建一个FDemo的java代码,粘贴上去,代码爆红的话是因为你配置的pom.xml没有刷新!

然后你去改代码,就该四个部分

 第一个就是,你是南京,就改成nanjing,北京就改成beijing。

之后你要创建一个accessKey ID和Sercet,点击你的头像,选择如下

你点击创建,输入验证码,你就会收到AccessKey ID和AccessKey Sercret,你保存好,直接复制到某个txt文件里存着。

 之后你就把他们添加到环境变量里去。

你打开设置,选择系统,拉到最底下,选择系统信息,高级系统设置

 然后按如下图,创建OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET两个环境变量,把你刚才保存的复制进去。之后点击确定确定退出即可。

然后你去启动代码,到你的bucket列表查看,有你的文件说明没问题

 配置阿里云

1.现在你的application.yml编写你的配置,如下,把这个咱贴到你那,然后把xxxx改成你的

aliyun:
  oss:
    endpoint: https://oss-cn-xxxxx.aliyuncs.com  # 域名
    accessKeyId: xxxxxxxxxxx  # 密钥的ID
    accessKeySecret: xxxxxxxxxxx # Secret密钥
    bucketName: xxxxxxxxx # bucket名称

2.然后配置最大文件大小和最大文件请求大小,这个配置放在spring下

spring: 
  servlet:
    multipart:
      max-file-size: 10MB
      max-request-size: 100MB

3.然后新建一个工具类,里面有AliOSSProperties和AliOSSUtils

AliOSSUtils

package com.itheima.utils;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.io.InputStream;
import java.util.UUID;

/**
 * 阿里云 OSS 工具类
 */
@Component
public class AliOSSUtils {

    @Value("${aliyun.oss.endpoint}")
    private String endpoint;
    @Value("${aliyun.oss.accessKeyId}")
    private String accessKeyId;
    @Value("${aliyun.oss.accessKeySecret}")
    private String accessKeySecret;
    @Value("${aliyun.oss.bucketName}")
    private String bucketName;

    @Autowired
    private AliOSSProperties aliOSSProperties;

    /**
     * 实现上传图片到OSS
     */
    public String upload(MultipartFile file) throws IOException {
        // 获取上传的文件的输入流
        InputStream inputStream = file.getInputStream();

        // 避免文件覆盖
        String originalFilename = file.getOriginalFilename();
        String fileName = UUID.randomUUID().toString() + originalFilename.substring(originalFilename.lastIndexOf("."));

        //上传文件到 OSS
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
        ossClient.putObject(bucketName, fileName, inputStream);

        //文件访问路径
        String url = endpoint.split("//")[0] + "//" + bucketName + "." + endpoint.split("//")[1] + "/" + fileName;
        // 关闭ossClient
        ossClient.shutdown();
        return url;// 把上传到oss的路径返回
    }

}

AliOSSProperties

package com.itheima.utils;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Data
@Component
@ConfigurationProperties(prefix = "aliyun.oss")
//我个人感觉直接用value方便一点,但是用这种封装成对象再拿出来,起到解耦作用。
public class AliOSSProperties {
    private String endpoint;
    private String accessKeyId;
    private String accessKeySecret;
    private String bucketName;
}

 把这两个代码直接全复制粘贴,不用做修改

测试

然后我们来测试一下

在Controller层新建一个UploadController

import com.itheima.pojo.Result;
import com.itheima.utils.AliOSSUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

@Slf4j
@RestController
public class UpLoadController {

    @Autowired
    private AliOSSUtils aliOSSUtils;

    //上蹿到阿里云的OSS
    @PostMapping("/upload")
    public Result upload(MultipartFile image) throws IOException {
        log.info("文件上传{}",image.getOriginalFilename());
        String url = aliOSSUtils.upload(image);
        log.info("文件访问的url={}",url);
        return Result.success(url);
    }
}

 这段代码复制进去,也不用修改

之后启动整个程序,在postman编写一个接口看看,如下图

 

然后点击send,没问题,那么文件上传就没问题。 你点击那个data的链接是可以直接访问的,此时在你的bucket也是可以直接访问的。

前后端联调

接下来就要拿到前端的ngnix服务器的资源。

链接: https://pan.baidu.com/s/1rIzwtZI4NcQDSQWlbrL1Ew?pwd=6666 提取码: 6666 

去把这个下载下来,放在没有中文的路径当中,然后点击ngnix.exe之后,

启动整个后端程序,

然后在浏览器输入localhost:90回车,选择部门管理和员工管理,能正确加载数据就好了

 

我们来测试下阿里云OSS行不行,如图,如果你上次图片之后能在头像那边看到说明这是没问题的。

至此今天的内容结束,圆满完成!


后面我会出全局异常处理和登录校验JWT,大家敬请期待!!

点个关注,收藏,更新路上不迷路!!

标签:Java,String,tlias,OSS,private,oss,org,import,联调
From: https://blog.csdn.net/yf15996280470/article/details/140317830

相关文章

  • 面试官:Java对象引用都有哪些类型?
    哈喽,大家好......
  • Java计算机毕业设计的电影院管理系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着文化娱乐产业的蓬勃发展,电影院作为人们休闲娱乐的重要场所,其管理效率和用户体验成为影响行业竞争力的关键因素。传统的电影院管理方式往往依赖于......
  • JavaSE语法 | 初识Java!!!
    初识Java一、Java开发环境二、初步认识Java的main方法2.1main方法的实现2.2运行Java程序三、注释四、标识符五、关键字一、Java开发环境IDEA版本:IntelliJIDEACommunityEdition2022.3.3JDK17Windows11二、初步认识Java的main方法2.1main方法的实现main......
  • Java虚拟机(JVM)修复
    一、确定问题原因首先,需要明确Java虚拟机出现问题的具体原因。这可以通过以下方式进行:查看错误日志:JVM和Java应用程序会生成日志文件,这些文件记录了运行时的详细信息,包括错误信息和系统警告。通过查看这些日志,可以获得导致JVM故障的线索。使用调试工具:如jstack、jmap、jconsole......
  • JavaSE学习笔记第二弹——对象和多态(上)
    目录面向对象基础面向对象程序设计的定义类的基本结构成员变量成员方法方法定义与使用设计练习方法重载构造方法静态变量和静态方法String和StringBuilder基本含义区别总结今天我们继续来学习JavaSE,扩展和Java相关的知识,与大家共勉。今天的主题是对象和多态,希......
  • SpringBoot 整合 MyBatis 时报java.lang.IllegalArgumentException: Unable to instan
    配置   报错信息: 原因:版本不兼容,降低 mybatis 版本 问题解决: ......
  • 软件设计12丨编程范式:明明写的是Java,为什么被人说成了C代码?
    在上一个小模块,我给你讲了程序设计语言,帮助你重新审视一下自己最熟悉的日常工具。但是,使用程序设计语言是每个程序员都能做到的,可写出的程序却是千差万别的。这一讲,我们就来看看这些差异到底是怎样造成的。在开始之前,我先给你讲一个小故事。在一次代码评审中,小李兴致勃勃地......
  • java导出PDF文件
    我们需要将生成的PDF文件直接导出到浏览器而不是保存到本地,需要对HttpServletResponse进行配置,将PDF写入到响应流中。以下是可以将PDF导出到浏览器进行下载:我们首先先编写PDF工具类:packagecom.scenic.util;importcom.itextpdf.text.*;importcom.itextpdf.text.pdf.*;im......
  • Java中的SpringAOP、代理模式、常用AspectJ注解详解
      这篇文章主要介绍了Java中的SpringAOP、代理模式、常用AspectJ注解详解,Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务,例如审计和事务管理进行内聚性的开发,需要的朋友可以参考下 +目录一、AOP简述回到主题,何为AOP?AOP即面向切面编......
  • java类的加载顺序及复杂案例(阿里)
    一.无继承关系的情况下在Java中,类的初始化顺序涉及到多个方面,包括静态变量、静态初始化块、实例变量、实例初始化块(也称为构造器初始化块或初始化块)以及构造器的执行顺序。这里是一个详细的顺序说明:静态变量和静态初始化块:当类被加载到JVM时,类的静态成员(静态变量和静态初......