【技术方案分享】华为云OBS&RDS开发实战-java版(下篇)

举报
HuaweiCloudDeveloper 发表于 2022/01/12 17:05:57 2022/01/12
【摘要】 本实践是一个前后端分离的项目,通过集成华为云OBS Java SDK 和华为云RDS数据库,实现用户中心个人图片上传、更新功能。获取源代码:gitee上获取(https://gitee.com/HuaweiCloudDeveloper/dtse-practice)

1  实验目的

  • 使用IDEAVscode开发工具,基于springbootVUE.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 jwtmybatis-plusOBS Java-SDK
  • 应用部署技术栈:ECSEIP RDSMySQL)、OBS、华为云CodeHub
  • 运维技术栈:云日志服务 LTS

4  前置条件

  • 已注册华为云账号,完成实名认证,同时账号不能处于欠费或冻结状态;
  • 账户需有足够的余额或代金券;
  • 工具安装:安装好IDEA以及VScode
  • 获取源代码:gitee上获取https://gitee.com/HuaweiCloudDeveloper/dtse-practice

5  前端服务调试

5.1  项目导入以及参数配置

点击  前端代码获取

  • 下载插件 npm install


  • 修改后端服务配置,修改文件 /project/vue.conf.js
let proxyObj = {}
proxyObj['/'] = {
  //websocket
  ws:false,
  //目标地址
  target:'http://IP:9090',        //后端服务地址
  //发送请求头中host会设置成target
  changeOrigin:true,
  //不重写请求地址
  pathRewrite:{
    '^/':'/'
  }
}
module.exports = {
  devServer:{
    host:'localhost',
    port:8080,
    proxy:proxyObj
  }
}
  • 修改后端文件上传接口配置,修改文件 /project/src/views/profile.vue
<!-- 右边头像+基本信息 -->
      <el-container>
        <el-header style="padding-left:13px">
            <el-card >
              <el-row>
                <el-col :span="2">
                  <img ref="logo" title="点击修改用户头像" :src="userInfo.iconURL" v-if="userInfo.iconURL" style="margin-left:10px">
                  <el-upload
                    action="http://xxxxxxx/upload"              //后端图片上传接口地址
                    :headers="headers"
                    :data="userInfo"
                    :show-file-list="false"
                    :on-success="reload"
                    >
                    <el-button size="small" type="primary">点击上传 <i class="el-icon-upload el-icon--right"></i></el-button>
                  </el-upload>
                </el-col>
                <el-col :span="22">
                  <ul style="margin-left:30px">
                    <li style="padding-top: 0rem; font-size:30px">{{ userInfo.username }}</li>
                  </ul>
                </el-col>
              </el-row>
            </el-card>
        </el-header>
    </el-container>

5.2  项目打包

  • VScode执行命令 npm run build


  • 打包成功


5.3  项目部署

  • 静态资源包上传


  • 安装 nginx 并进行配置
user root;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
    worker_connections 1024;
}
http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 4096;
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;
    server {
        listen       8080;             //前端访问端口
        listen       [::]:8080;
        server_name  _;
        root         /usr/share/nginx/html;
        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;
        location / {                    //前端静态资源配置
        root /root/dist;
        index index.html;
        }
        location /login {                //后端路由配置
        proxy_pass http://localhost:9090;
        }
        location /profile {                //后端路由配置
        proxy_pass http://localhost:9090;
        }
        error_page 404 /404.html;
        location = /404.html {
        }
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }

6  LTS日志接入

6.1  配置LTS

  • 登录华为云,进入控制台,进入LTS管理界面,进入日志接入模块,点击接入日志按钮选择主机接入,进入配置界面。


  • LTS-step1 选择日志组以及日志流 (若不存在主机组以及日志流,点击新建即可)


  • LTS-step2 新建主机组,主机安装 ICagent 后选择主机并进行下一步

  • LTS-step3 日志采集配置,当前采集nginx 日志为例,配置完成点击提交即可


6.2  LTS 日志查看

  • 控制台进入日志管理界面,点击对应的日志组以及日志流查看原始日志以及实时日志。

 

6.3  LTS日志转储

  • 控制台进入日志转储界面,选择转储对象后点击配置转储


相关文章:

【技术方案分享】华为云OBS&RDS开发实战-java版(上篇)

【技术方案分享】华为云OBS&RDS开发实战-java版(中篇)

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。