【技術方案分享】華為云OBS&RDS開發實戰-java版(中篇)
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小時內刪除侵權內容。