技術方案分享】華為云OBS&RDS開發實戰-java版(中篇)

      網友投稿 941 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 圖片,并修改圖片

      【技術方案分享】華為云OBS&RDS開發實戰-java版(中篇)

      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驅動等依賴

      4.0.0 org.springframework.boot spring-boot-starter-parent 2.3.7.RELEASE org.example obs-sdk 1.0-SNAPSHOT org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test org.springframework.boot spring-boot-starter-data-jpa mysql //數據庫依賴 mysql-connector-java com.baomidou //mybatis mybatis-plus-boot-starter 3.3.1 com.huaweicloud //OBS SDK esdk-obs-java-bundle [3.21.8,) org.projectlombok lombok com.fasterxml.jackson.core jackson-annotations 2.10.0 io.jsonwebtoken jjwt-api 0.11.2 io.jsonwebtoken jjwt-impl 0.11.2 runtime io.jsonwebtoken jjwt-jackson 0.11.2 runtime org.springframework.boot spring-boot-configuration-processor true com.google.code.findbugs annotations 3.0.1 org.springframework.boot spring-boot-maven-plugin org.apache.maven.plugins maven-javadoc-plugin 3.0.0

      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小時內刪除侵權內容。

      上一篇:Spring依賴注入的三種方式(好的 壞的和丑的)
      下一篇:如何制作加粗的邊框表格?
      相關文章
      亚洲国产精品无码久久| 亚洲理论片在线观看| 亚洲成a人片在线看| 中文字幕亚洲综合久久| 人人狠狠综合久久亚洲88| 亚洲自偷自偷在线制服| 亚洲性久久久影院| 亚洲成a人无码av波多野按摩| 亚洲成人动漫在线观看| 亚洲成人午夜在线| 亚洲精品国产精品乱码在线观看 | 亚洲精品国产精品| 亚洲 暴爽 AV人人爽日日碰 | 亚洲Av高清一区二区三区| 亚洲人成影院77777| 亚洲一区免费视频| 天堂亚洲国产中文在线| 亚洲最大av资源站无码av网址| 亚洲中文字幕久久久一区| 亚洲精品无码你懂的| 亚洲GV天堂GV无码男同| 婷婷亚洲综合一区二区| 亚洲高清成人一区二区三区| 中文字幕亚洲电影| 亚洲精品乱码久久久久久按摩| 亚洲成AV人片在线观看无| 亚洲欧洲日韩不卡| 亚洲美女精品视频| 亚洲国产精品综合久久20| 亚洲人精品亚洲人成在线| 亚洲国产成人精品无码区二本 | 久久亚洲私人国产精品vA| 亚洲黄色在线观看网站| 久久精品国产亚洲AV忘忧草18 | 亚洲国产精品一区第二页| 亚洲AV成人无码久久精品老人| 亚洲色欲或者高潮影院| 亚洲最大成人网色香蕉| 亚洲人成人无码.www石榴| 亚洲国产精品自在拍在线播放| 国产AV无码专区亚洲AV手机麻豆|