怎么换主题~是主题,不是皮肤!
803
2022-05-30
1 实验目的
使用IDEA、Vscode开发工具,基于springboot、VUE.js框架开发和测试单元编写
能够集成 OBS-Java-SDK 和 RDS for MySQL 进行业务开发
了解用户鉴权、用户信息查询以及用户数据更新等业务实现逻辑
2 项目实战要求
在华为云上创建OBS桶 和 RDS for MySQL 并初始化数据库
IDEA工具导入Springboot项目,集成 OBS SDK 和数据库RDS开发环境
查看华为云官方SDK文档,实现“OBSservice”类中 uploadOneFile 和 deleOneFile 方法
能够编写junit测试类,实现接口数据测试
使用VScode工具加载前端代码,输入用户名密码后,查看profile 图片,并修改图片
3 实战项目介绍
本实践是一个前后端分离的项目,通过集成华为云OBS Java SDK 和华为云RDS数据库,实现用户中心个人图片上传、更新功能。
3.1 业务流程图
3.2 部署架构图
3.3 项目实战技术栈
本项目是一个前后端分离项目,涉及:
开发工具:后端开发工具 IntelliJ IDEA 、前端开发工具 VScode
开发技术栈:springboot 、vue.js 、jwt、mybatis-plus、OBS Java-SDK
应用部署技术栈:ECS、EIP 、 RDS(MySQL)、OBS、华为云CodeHub
运维技术栈:云日志服务 LTS
4 前置条件
已注册华为云账号,完成实名认证,同时账号不能处于欠费或冻结状态;
账户需有足够的余额或代金券;
工具安装:安装好IDEA以及VScode。
获取源代码:gitee上获取(https://gitee.com/HuaweiCloudDeveloper/dtse-practice)
5 后端代码调试
5.1 代码调试
pom.xml 配置OBS SDK、MySQL驱动等依赖
5.2 修改配置项
server: port: 9090 #服务端口 spring: application: name: dtse-practice-demo #数据库配置参数 datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://IP(数据库绑定的公网IP):3306/dtse?useUnicode=true&characterEncoding=utf8 #数据库连接地址 username: root password: ************** #数据库密码 jpa: open-in-view: off security: oauth2: resourceserver: jwt: issuer-uri: logging: level: root: info com.huaweicloud: debug jwt: config: ttl: 360000 ##OBS 配置信息 obs: config: bucketname: ***** ##OBS桶名称 #objectname: dtsetraining/Dtest endPoint: https://obs.cn-north-4.myhuaweicloud.com ##访问桶,概述页面获取 ak: **** ##访问秘钥AK sk: **** ##访问秘钥SK
实现OBSService类的 uploadOneFile 和 deleteOneFile 方法
package com.huaweicloud.dtse.service; import com.huaweicloud.commons.config.OBSParams; import com.huaweicloud.commons.response.Result; import com.huaweicloud.commons.response.ResultCode; import com.huaweicloud.dtse.service.impl.IOBSService; import com.obs.services.ObsClient; import com.obs.services.model.PutObjectResult; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; /** * OBS service接口 */ @Service public class OBSService implements IOBSService { @Autowired OBSParams obsParams; /** * @param inputStream 上传至OBS数据流参数 * @return 返回存入OBS请求参数 */ @Override public String uploadOneFile(InputStream inputStream) { //1、从obsParams中获取OBS 访问配置参数 String endPoint = obsParams.getEndPoint(); String ak = obsParams.getAk(); String sk = obsParams.getSk(); String bucketname = obsParams.getBucketname(); String objectname = obsParams.getObjectname(); //2、创建ObsClient实例 ObsClient obsClient = new ObsClient(ak, sk, endPoint); //3、使用obsClient 的putObject方法,将数据存储至对象存储 OBS PutObjectResult putObjectResult = obsClient.putObject(bucketname, objectname, inputStream); return putObjectResult.getObjectUrl(); } /** * @param deleobjectname 需要删除对象的请求参数 * @return 返回删除状态 */ @Override public Result deleteOneFile(String deleobjectname) { //1、从obsParams中获取OBS 访问配置参数 String endPoint = obsParams.getEndPoint(); String ak = obsParams.getAk(); String sk = obsParams.getSk(); String bucketname = obsParams.getBucketname(); //2、创建ObsClient实例 ObsClient obsClient = new ObsClient(ak, sk, endPoint); //3、使用obsClient 的deleteObject方法,删除OBS中对象 try { obsClient.deleteObject(bucketname, URLDecoder.decode(deleobjectname, "UTF-8")); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return new Result(ResultCode.SUCCESS); } }
Test类,初始化数据
package com.huaweicloud; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.huaweicloud.commons.pojo.User; import com.huaweicloud.dtse.service.UserService; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest() public class test { User user = new User(); @Autowired private UserService userService; @Test public void saveUser() { //1、初始化对象参数 String id = (String) IdWorker.getIdStr(); String mobile = "15927356938"; String username = "dtse"; String password = "dtse"; user.setId(id); user.setMobile(mobile); user.setUsername(username); user.setPassword(password); //2、调用UserService 的save方法保存对象至数据库中。 userService.save(user); } }
5.3 项目打包
IDEA项目打包
项目目录target查看生成的jar包
5.4 项目部署
jar包上传到服务器
运行jar包
相关文章:
【技术方案分享】华为云OBS&RDS开发实战-java版(上篇)
【技术方案分享】华为云OBS&RDS开发实战-java版(下篇)
Java 对象存储服务 OBS
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。