ToB企服应用市场:ToB评测及商务社交产业平台

标题: Java后端tlias员工部门管理-前后端联调-阿里云OSS-5 [打印本页]

作者: 钜形不锈钢水箱    时间: 2024-8-18 19:08
标题: Java后端tlias员工部门管理-前后端联调-阿里云OSS-5
当完成了员工和部门管理的两大模块的所有根本功能,那么我们接下来就先举行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,大家敬请等候!!
点个关注,收藏,更新路上不迷路!!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4