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改成你的
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/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