当前位置:   article > 正文

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

tlias阿里云

当完成了员工和部门管理的两大模块的所有基本功能,那么我们接下来就先进行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改成你的

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

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

  1. spring:
  2. servlet:
  3. multipart:
  4. max-file-size: 10MB
  5. max-request-size: 100MB

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

AliOSSUtils

  1. package com.itheima.utils;
  2. import com.aliyun.oss.OSS;
  3. import com.aliyun.oss.OSSClientBuilder;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.beans.factory.annotation.Value;
  6. import org.springframework.stereotype.Component;
  7. import org.springframework.web.multipart.MultipartFile;
  8. import java.io.IOException;
  9. import java.io.InputStream;
  10. import java.util.UUID;
  11. /**
  12. * 阿里云 OSS 工具类
  13. */
  14. @Component
  15. public class AliOSSUtils {
  16. @Value("${aliyun.oss.endpoint}")
  17. private String endpoint;
  18. @Value("${aliyun.oss.accessKeyId}")
  19. private String accessKeyId;
  20. @Value("${aliyun.oss.accessKeySecret}")
  21. private String accessKeySecret;
  22. @Value("${aliyun.oss.bucketName}")
  23. private String bucketName;
  24. @Autowired
  25. private AliOSSProperties aliOSSProperties;
  26. /**
  27. * 实现上传图片到OSS
  28. */
  29. public String upload(MultipartFile file) throws IOException {
  30. // 获取上传的文件的输入流
  31. InputStream inputStream = file.getInputStream();
  32. // 避免文件覆盖
  33. String originalFilename = file.getOriginalFilename();
  34. String fileName = UUID.randomUUID().toString() + originalFilename.substring(originalFilename.lastIndexOf("."));
  35. //上传文件到 OSS
  36. OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
  37. ossClient.putObject(bucketName, fileName, inputStream);
  38. //文件访问路径
  39. String url = endpoint.split("//")[0] + "//" + bucketName + "." + endpoint.split("//")[1] + "/" + fileName;
  40. // 关闭ossClient
  41. ossClient.shutdown();
  42. return url;// 把上传到oss的路径返回
  43. }
  44. }

AliOSSProperties

  1. package com.itheima.utils;
  2. import lombok.Data;
  3. import org.springframework.boot.context.properties.ConfigurationProperties;
  4. import org.springframework.stereotype.Component;
  5. @Data
  6. @Component
  7. @ConfigurationProperties(prefix = "aliyun.oss")
  8. //我个人感觉直接用value方便一点,但是用这种封装成对象再拿出来,起到解耦作用。
  9. public class AliOSSProperties {
  10. private String endpoint;
  11. private String accessKeyId;
  12. private String accessKeySecret;
  13. private String bucketName;
  14. }

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

测试

然后我们来测试一下

在Controller层新建一个UploadController

  1. import com.itheima.pojo.Result;
  2. import com.itheima.utils.AliOSSUtils;
  3. import lombok.extern.slf4j.Slf4j;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.web.bind.annotation.PostMapping;
  6. import org.springframework.web.bind.annotation.RestController;
  7. import org.springframework.web.multipart.MultipartFile;
  8. import java.io.IOException;
  9. @Slf4j
  10. @RestController
  11. public class UpLoadController {
  12. @Autowired
  13. private AliOSSUtils aliOSSUtils;
  14. //上蹿到阿里云的OSS
  15. @PostMapping("/upload")
  16. public Result upload(MultipartFile image) throws IOException {
  17. log.info("文件上传{}",image.getOriginalFilename());
  18. String url = aliOSSUtils.upload(image);
  19. log.info("文件访问的url={}",url);
  20. return Result.success(url);
  21. }
  22. }

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

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

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

前后端联调

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

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

或者如果你有git,那么直接运行git clone https://gitee.com/yangLLHGS/qd-project.git也可以直接下载。

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

启动整个后端程序,

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

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

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


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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/990922
推荐阅读
相关标签
  

闽ICP备14008679号