828华为云征文|华为云Flexus云服务器X实例部署Xnote笔记应用

828华为云征文|华为云Flexus云服务器X实例部署Xnote笔记应用

  • 前言
  • 一、Flexus云服务器X实例介绍
    • 1.1 Flexus云服务器X实例简介
    • 1.2 Flexus云服务器X实例特点
    • 1.3 Flexus云服务器X实例使用场景
  • 二、Note Mark 介绍
    • 2.1 Xnote简介
    • 2.2 Xnote特点
    • 2.3 主要使用场景
  • 三、本次实践介绍
    • 3.1 本次实践简介
    • 3.2 本次环境规划
  • 四、购买华为云Flexus云服务器X实例
    • 4.1 登录华为云
    • 4.2 进入Flexus云服务器X实例购买页面
    • 4.3 购买Flexus云服务器X实例配置
    • 4.4 使用Xshell远程连接
  • 五、检查Docker环境
    • 5.1 检查操作系统版本
    • 5.2 检查内核版本
    • 5.3 检查Docker版本
    • 5.4 检查Docker服务状态
    • 5.5 检查Docker compose版本
  • 六、部署Xnote应用
    • 6.1 拉取Xnote镜像
    • 6.2 创建部署目录
    • 6.2 编辑boot.properties文件
    • 6.4 编辑docker-compose.yaml文件
    • 6.5 创建Xnote容器
    • 6.6 检查Xnote容器状态
    • 6.7 检查Xnote容器日志
  • 七、访问前准备工作
    • 7.1 关闭selinux和防火墙
    • 7.2 Flexus云服务器X实例安全组配置
  • 八、访问Xnote服务
    • 8.1 访问Xnote初始页
    • 8.2 登录Xnote
  • 九、Xnote的基本使用
    • 9.1 新建笔记本
    • 9.2 新建笔记
    • 9.3 查看笔记效果
  • 十、使用体验与总结

前言


华为云凭借其卓越的技术实力和稳定的服务质量,已成为众多企业和开发者构建云端应用的首选平台。Flexus云服务器X实例作为新一代云服务器,专为中小企业和开发者量身打造,提供了强大的柔性算力和灵活的部署选项。在本文中,我们将探讨如何利用华为云Flexus云服务器X实例高效部署Xnote笔记应用,以帮助用户更好地管理和组织个人信息。


一、Flexus云服务器X实例介绍

1.1 Flexus云服务器X实例简介

  • 官网地址: 华为云Flexus云服务器X实例

华为云Flexus云服务器X实例是新一代面向中小企业和开发者的柔性算力云服务器。它能够智能感知业务负载的变化,自动调整资源配置。这款服务器特别适用于中低负载的应用场景,例如电商直播、企业网站建设、开发测试环境、游戏服务器以及音视频服务等。X实例的设计理念旨在为用户提供更加灵活和高效的计算资源管理方式。通过智能调整,它可以更好地满足不同业务的需求,提高资源利用率。

在这里插入图片描述

1.2 Flexus云服务器X实例特点

  • 提供丰富的公共镜像:Flexus云服务器X实例提供多种公共镜像供用户选择,方便快速部署各种应用和服务。

  • 可灵活自定义vCPU内存配比:用户可以根据自己的需要灵活调整虚拟CPU和内存的配比,以满足不同场景的需求。

  • 智能感知业务动态升降配:Flexus云服务器X实例能够智能感知业务的负载情况,并根据需要自动升降配,以满足业务的需求,提高系统的稳定性和性能。

  • 负载范围更高:相对于Flexus应用服务器L实例,Flexus云服务器X实例能够处理更高的负载,适用于更复杂和繁忙的场景。

1.3 Flexus云服务器X实例使用场景

Flexus云服务器X实例针对不同的使用场景展现出其独特的优势:

  1. 电商直播:利用X实例搭建电商交易平台,可以有效应对电商市场的瞬息万变,从容处理业务压力波动,确保交易过程顺畅无阻。

  2. 企业建站:面向博客、论坛和企业门户等应用场景,X实例帮助企业高效传播价值信息,促进信息共享与交流,支持构建多功能传播和交互平台。

  3. 个人开发测试:开发者在开发和测试过程中所需的环境资源可以通过X实例便捷获取,不仅提高了搭建效率,而且降低了成本。

  4. 游戏服务器:适用于搭建游戏后台服务器,强大的计算能力可以轻松应对大量玩家同时在线的情况,同时支持平滑扩容,快速应对玩家数量增长的需求,以及提供出色的网络加速能力以提升用户体验。

二、Note Mark 介绍

2.1 Xnote简介

Xnote是一款面向个人用户的轻量级笔记系统,旨在通过提供多种维度的数据管理功能来帮助用户从信息过载中解脱出来。它不仅支持丰富的笔记格式和文件管理,还具备跨平台特性,可以在Windows、Mac、Linux等操作系统上运行,并且既支持云服务部署也支持本地运行。

2.2 Xnote特点

  • 丰富的数据管理能力:支持多种笔记格式及文件管理功能,便于用户组织和检索信息。
  • 可扩展性:默认提供了常用工具,并允许用户编写自定义插件以满足个性化需求。
  • 跨平台兼容:支持Windows、Mac、Linux三大主流操作系统,确保用户在不同设备上的使用体验一致。
  • 灵活的数据存储:100%自由的数据控制权,支持多种数据库环境,让用户可以根据需要选择最适合自己的存储方案。
  • 多用户支持(有限):虽然支持小规模的多用户使用,但对于大规模或多用户的商业应用场景建议谨慎考虑。

2.3 主要使用场景

  • 个人知识管理:适用于需要整理个人学习资料、项目文档或日常想法的用户。
  • 学生与研究人员:对于经常需要记录课堂笔记、研究资料的学生和研究人员来说非常有用。
  • 小型团队协作:适合小型团队内部共享信息和文档,但需注意其对多用户的支持限制。
  • 远程工作者:能够轻松地在不同设备间同步笔记,非常适合经常变换工作地点的远程工作者。
  • 开发者:由于其高度可定制性和支持插件开发的特点,特别受到喜欢DIY解决方案的技术爱好者的青睐。

三、本次实践介绍

3.1 本次实践简介

1.本次实践为个人测试学习环境,旨在快速部署应用,生产环境请谨慎;
2.本次实践环境为华为云Flexus云服务器X实例,使用的操作系统为Huawei Cloud EulerOS 2.0 (x86_64);
3.在Docker环境下部署Xnote笔记应用。

3.2 本次环境规划

服务器类别公共镜像选择内网IP地址Docker版本操作系统版本
华为云Flexus云服务器X实例openEuler192.168.0.16926.1.3openEuler 22.03 LTS

四、购买华为云Flexus云服务器X实例

4.1 登录华为云

进入华为云官网:https://activity.huaweicloud.com/,登录自己的华为云账号,进入华为云首页。

在这里插入图片描述
在这里插入图片描述

4.2 进入Flexus云服务器X实例购买页面

我们在华为云官网首页,精选推荐模块中,可以看到Flexus云服务器X实例,点击进入Flexus云服务器X实例主页。

在这里插入图片描述
在这里插入图片描述

点击页面中的“购买”选项,进入Flexus云服务器X实例购买页面。

在这里插入图片描述

4.3 购买Flexus云服务器X实例配置

  • 镜像选择:本次实践使用openEuler作为公共镜像,请根据实际需求自定义选择合适的操作系统镜像。
  • 镜像切换说明:参考的公共镜像原为Huawei Cloud EulerOS,但本次实践中已切换至openEuler。
  • 基础配置参考:购买时可参考以下基础配置进行选择。
项目配置说明
计费模式包年/包月
区域华北—北京四,可用区:随机即可
实例规格关闭性能模式,选择自定义,4vCPUs | 12GiB
镜像公共镜像,openEuler,版本:openEuler 2.0 Standard 64 bit (10GiB)
应用加速不加速
存储系统盘,通用型SSD 100G
网络选择默认即可
安全组选择默认即可
弹性公网IP选择“现在购买”,全动态BGP,带宽3Mbit/s
云服务器名称可自定义设置,这里选择默认的名称
登录凭证自定义设置密码
云备份暂不购买
  • 确认配置及购买:在确认配置页面仔细检查Flexus云服务器X实例的各项设置,确保无误后点击“立即购买”,完成付款流程即可成功购买。

在这里插入图片描述

4.4 使用Xshell远程连接

进入华为云Flexus云服务的控制台,选择Flexus云服务器X实例,可以看到已经正在运行的Flexus云服务器X实例。

在这里插入图片描述

  • 复制Flexus云服务器X实例的弹性公网IP地址

在这里插入图片描述

  • 主要填写Flexus云服务器X实例的弹性公网IP地址,输入其登录用户和密码,连接即可。

在这里插入图片描述

在这里插入图片描述

五、检查Docker环境

5.1 检查操作系统版本

检查Flexus云服务器X实例的操作系统版本,本次实践选择的版本为openEuler 22.03 LTS

[root@flexusx-51a1 ~]# cat /etc/os-release
NAME="openEuler"
VERSION="22.03 LTS"
ID="openEuler"
VERSION_ID="22.03"
PRETTY_NAME="openEuler 22.03 LTS"
ANSI_COLOR="0;31"

5.2 检查内核版本

检查当前操作系统的内核版本,当前内核版本为5.10.0-60.139.0.166.oe2203.x86_64

[root@flexusx-51a1 ~]# uname -r
5.10.0-60.139.0.166.oe2203.x86_64

5.3 检查Docker版本

部署该项目需要提前安装Docker环境,检查Docker版本,当前安装的Docker版本为 26.1.3

[root@flexusx-51a1 ~]# docker -v
Docker version 26.1.3, build b72abbb

5.4 检查Docker服务状态

检查Docker服务状态,确保Docker服务正常。

[root@flexusx-51a1 ~]# systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
     Active: active (running) since Mon 2024-09-23 20:27:32 CST; 12min ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 18484 (dockerd)
      Tasks: 10
     Memory: 240.2M
     CGroup: /system.slice/docker.service
             └─ 18484 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

5.5 检查Docker compose版本

检查docker compose版本,当前默认安装版本为v2.27.0

[root@flexusx-51a1 ~]# docker compose version
Docker Compose version v2.27.0

六、部署Xnote应用

6.1 拉取Xnote镜像

执行以下命令,拉取Xnote镜像。

[root@flexusx-51a1 ~]# docker pull swr.cn-north-4.myhuaweicloud.com/jeven/xnote
Using default tag: latest
latest: Pulling from jeven/xnote
e79bb959ec00: Pull complete
d4b7902036fe: Pull complete
1b2a72d4e030: Pull complete
d54db43011fd: Pull complete
69d473365bb3: Pull complete
7dc3a6a0e509: Pull complete
a288a79001c3: Pull complete
7d3cdae56021: Pull complete
dbf17696f820: Pull complete
de1e51aadc6c: Pull complete
cfb86fbd7fdc: Pull complete
8e3bc75cc433: Pull complete
110c6930e203: Pull complete
6ee3aff678e9: Pull complete
Digest: sha256:10a511df294788bcb8fa9f2c98bdd3a66b48ef65222347d55c1af030e131dbdf
Status: Downloaded newer image for swr.cn-north-4.myhuaweicloud.com/jeven/xnote:latest
swr.cn-north-4.myhuaweicloud.com/jeven/xnote:latest

在这里插入图片描述

6.2 创建部署目录

在命令行终端上,我们需要创建部署目录/data/xnote

mkdir -p /data/xnote/data && cd /data/xnote
  • 设置目录权限
 chmod -R 777 /data/xnote/

6.2 编辑boot.properties文件

新建并编辑boot.properties文件,主要修改db_driver = sqlite部分,定义数据库类型,这里直接使用sqlite数据库。

vim boot.properties
# 这是系统默认配置,请不要编辑
# 配置项使用下划线(_)划分模块和单词,除了最后一个(.type),其他地方不要使用(.)
# 关于数字的说明
# kb/mb/gb/tb/pb的进位是1024, k/m的进位是1000
# 例如: 1kb = 1024, 1k = 1000

# 数据存储的根目录
data = ./data

# HTTP服务的端口号
port = 1234

# 服务器根目录,默认是空(根路径)
server_home = 

# 最小线程数
min_threads = 15
min_threads.type = int

# 是否开启调试模式
debug = false
debug.type = bool

# 启动后是否自动打开浏览器(在桌面运行的选项)
open_browser = false
open_browser.type = bool

# 启动后是否播放语音提示
ringtone = false
ringtone.type = bool

# 是否强制跳转https
force_https = false
force_https.type = bool

# 是否快速重载(开发模式使用)
fast_reload = false
fast_reload.type = bool

# TODO 重启的内存阈值 -1表示不重启
reload_mem_threshold = -1
reload_mem_threshold.type = int

# 定时任务开关
cron_enabled = true
cron_enabled.type = bool

# 是否开启WEBDAV
webdav = false
webdav.type = bool

# 数据库驱动 {leveldb, leveldbpy, sqlite, mysql}
db_driver = sqlite
# 缓存驱动 {memory, db, redis}
db_driver_cache = memory

# 是否开启数据库备份
db_backup = true
db_backup.type = bool

# 是否开启数据库debug日志
db_log_debug = false
db_log_debug.type = bool

# 数据库备份失效时间(天)
db_backup_expire_days = 5
db_backup_expire_days.type = int

# 是否开启数据库调试
db_debug = false
db_debug.type = bool

# 分析table_proxy性能(临时)
db_profile_table_proxy = false
db_profile_table_proxy.type = bool

# 系统日志最大长度
db_sys_log_max_size = 10000
db_sys_log_max_size.type = int

# leveldb缓存配置
block_cache_size = 16777216 # 16M
block_cache_size.type = int

# leveldb的写入缓冲配置(MemTable的大小)
write_buffer_size = 4194304 # 4M
write_buffer_size.type = int

# leveldb最大打开的文件数
max_open_files = 1000
max_open_files.type = int

# lmdb配置
lmdb_map_size = 1GB
lmdb_map_size.type = int

# 主从同步配置
# leader: 主节点
# follower: 从节点
node_role = leader
# 节点ID
node_id = my_node_id
# 是否构建文件同步索引
build_fs_sync_index = false
build_fs_sync_index.type = bool

# 是否开启binlog
binlog = false
binlog.type = bool

# binlog最大值
binlog_max_size = 1M
binlog_max_size.type = int

# 是否同步文件
sync_files_from_leader = false
sync_files_from_leader.type = bool
# 是否同步数据库
sync_db_from_leader = false
sync_db_from_leader.type = bool
# 同步的轮询时间
sync_interval_seconds = 3
sync_interval_seconds.type = int

# 笔记本配置,笔记本的最大深度
max_book_depth = 2
max_book_depth.type = int

# sqlite的journal模式,默认DELETE,改成WAL可以提高并发性能,但是兼容性比较差
sqlite_journal_mode = DELETE

# mysql配置(还不稳定,试验中)
mysql_database = xnote
mysql_host = 
mysql_user = 
mysql_password =
mysql_cloud_type = 
mysql_pool_size = 10
mysql_pool_size.type = int
mysql_port = 3306
mysql_port.type = int


# 权限配置
auth_max_session_size = 20  # 单个用户最大会话数量
auth_max_session_size.type = int


# UI配置
ui_show_footer = true
ui_show_footer.type = bool


6.4 编辑docker-compose.yaml文件

本次实践使用docker compose方式部署Xnote应用,编辑docker-compose.yaml文件,可自行修改映射端口部分。

vim docker-compose.yaml

version: "3"
services:
 server:
     image: swr.cn-north-4.myhuaweicloud.com/jeven/xnote:latest   
     container_name: xnote
     volumes:
       - /data/xnote/data:/xnote/data
       - /data/xnote/boot.properties:/config/boot/boot.sae.properties
     ports:
       - 6200:1234

6.5 创建Xnote容器

执行以下命令,使用docker-compose.yaml文件创建Xnote服务。

docker compose up -d

在这里插入图片描述

6.6 检查Xnote容器状态

检查Xnote容器状态,确保Xnote容器正常启动。

[root@flexusx-51a1 xnote]#  docker compose ps
WARN[0000] /data/xnote/docker-compose.yaml: `version` is obsolete
NAME      IMAGE                                                 COMMAND                  SERVICE   CREATED          STATUS          PORTS
xnote     swr.cn-north-4.myhuaweicloud.com/jeven/xnote:latest   "python sentinel.py …"   server    56 seconds ago   Up 55 seconds   0.0.0.0:6200->1234/tcp,:::6200->1234/tcp

6.7 检查Xnote容器日志

检查Xnote容器运行日志,确保Xnote服务正常运行。

docker compose logs

在这里插入图片描述

七、访问前准备工作

7.1 关闭selinux和防火墙

  • 关闭selinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
  • 停止防火墙
systemctl stop firewalld
systemctl disable firewalld

7.2 Flexus云服务器X实例安全组配置

进入Flexus云服务器X实例控制台,进行安全组规则配置。

在这里插入图片描述

入方向上放行6200端口,确认配置即可。

在这里插入图片描述

八、访问Xnote服务

8.1 访问Xnote初始页

浏览器访问地址:http://服务器IP地址:6200,将IP替换为自己云服务器弹性公网IP地址。浏览器打开后,进入Xnote初始页。

在这里插入图片描述

8.2 登录Xnote

默认登录账号密码为admin/123456,进入Xnote首页。

在这里插入图片描述

输入账号密码登录后,访问Xnote笔记服务。

在这里插入图片描述

九、Xnote的基本使用

9.1 新建笔记本

Xnote首页—管理笔记本—新建笔记本,输入笔记本名称。

在这里插入图片描述
在这里插入图片描述

填写笔记本名称,这里填写Linux,确定即可。

在这里插入图片描述

9.2 新建笔记

  • 点击创建笔记

在这里插入图片描述

  • 编辑笔记标题,自定义填写。

在这里插入图片描述

在这里插入图片描述

9.3 查看笔记效果

完成笔记编辑并保存后,我们可以查看如下所示的笔记效果。

在这里插入图片描述

十、使用体验与总结

通过在华为云Flexus云服务器X实例上成功部署Xnote笔记应用,我们深刻体验到了华为云平台的卓越性能和稳定性。整个部署过程简便快捷,得益于华为云提供的详尽文档和强大的技术支持,使得即便是技术背景较浅的用户也能轻松完成配置。Flexus云服务器X实例的柔性算力确保了Xnote应用在高并发访问下依然能够保持流畅运行,为用户提供高效的数据管理体验。此次实践不仅验证了华为云解决方案的可靠性和灵活性,也进一步证明了其作为中小企业及开发者首选云服务提供商的地位。


在华为云 828 B2B 企业节之际,Flexus X 实例推出重磅优惠。华为云以其顶级的云服务魅力,为企业提供卓越性能与稳定服务,无疑是业务成长的上佳之选。此刻,诚邀各界加入华为云大家庭,共同见证技术革新创造的无限可能,携手奋进,一同开创云端璀璨未来,共享科技进步带来的累累硕果。


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/882377.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

豆包Python SDK接入流程

模型与价格 豆包的模型介绍可以看豆包大模型介绍,模型价格可以看豆包定价文档里的“模型推理” - “大语言模型” - “字节跳动”部分。 推荐使用以下模型: Doubao-lite-32k:每百万 token 的输入价格为 0.3 元,输出价格为 0.6 元…

JavaEE: 深入探索TCP网络编程的奇妙世界(六)

文章目录 TCP核心机制TCP核心机制九: 面向字节流TCP核心机制十: 异常处理 小小的补充(URG 和 PSH)~TCP小结TCP/UDP 对比用UDP实现可靠传输(经典面试题) 结尾 TCP核心机制 上一篇文章JavaEE: 深入探索TCP网络编程的奇妙世界(五) 书接上文~ TCP核心机制九: 面向字节流 TCP是面…

桶排序和计数排序(非比较排序算法)

桶排序 桶排序是一种基于分配的排序算法,特别适合用来排序均匀分布的数据。它的基本思想是将输入的数据分到有限数量的桶里,然后对每个桶内的数据分别进行排序,最后再将各个桶内的数据合并得到最终的排序结果。(通常用于浮点数,因…

Linux:RPM软件包管理以及yum软件包仓库

挂载光驱设备 RPM软件包管理 RPM软件包简介 区分软件名和软件包名 软件名:firefox 软件包名:firefox-52.7.0-1.el7.centos.x86_64.rpm 查询软件信息 查询软件(参数为软件名) ]# rpm -qa #当前系统中所有已安装的软件包 ]# r…

WebGL颜色与纹理

WEBGL中的着色器变量包括以下种类: 属性变量(Attribute Variables):这些变量用于接收从应用程序中传递的顶点数据,比如顶点位置和颜色,是只读的不可修改。统一变量(Uniform Variables&#xff…

AI浪潮新崛起:借助AI+实景/视频直播创新魅力,开启无人自动直播新时代!

AI浪潮新崛起:借助AI实景/视频直播创新魅力,开启无人自动直播新时代! 在科技日新月异的今天,人工智能(AI)已不再仅仅是科幻电影中的桥段,它正以不可阻挡之势渗透到我们生活的方方面面&#xff…

力扣718-最长重复子数组(Java详细题解)

题目链接:718. 最长重复子数组 - 力扣(LeetCode) 前情提要: 因为本人最近都来刷dp类的题目所以该题就默认用dp方法来做。 dp五部曲。 1.确定dp数组和i下标的含义。 2.确定递推公式。 3.dp初始化。 4.确定dp的遍历顺序。 5…

【编程底层原理】Java常用读写锁的使用和原理

一、引言 在Java的并发世界中,合理地管理对共享资源的访问是至关重要的。读写锁(ReadWriteLock)正是一种能让多个线程同时读取共享资源,而写入资源时需要独占访问的同步工具。本文将带你了解读写锁的使用方法、原理以及它如何提高…

这8款AI论文工具帮你一键搞定!ai论文一键生成任务书

在当今学术研究和论文写作领域,AI技术的应用已经成为一种趋势。通过智能算法和大数据分析,AI工具能够帮助学者和学生提高写作效率、优化内容结构,并确保论文的原创性和质量。以下是8款值得推荐的AI论文工具,其中特别推荐千笔-AIPa…

选择排序(C语言实现)

目录 1.基本思想 2.代码实现 代码思路 代码实现 代码测试 3.复杂度分析 1)时间复杂度 2)空间复杂度 4.特性总结 1.基本思想 选择排序是一种简单直观的比较排序算法。该算法的基本思想是在每一轮中选出当前未排序部分的最小(或最大&a…

通过 LabVIEW 正则表达式读取数值(整数或小数)

在LabVIEW开发中,字符串处理是一个非常常见的需求,尤其是在处理包含复杂格式的数字时。本文通过一个具体的例子来说明如何利用 Match Regular Expression Function 和 Match Pattern Function 读取并解析字符串中的数字,并重点探讨这两个函数…

日期和时间类【Date】【Calendar日历类】【LocalDate】Date-Time API详解

我们先来介绍一下与时间相关的基础知识。 GMT - 格林尼治标准时间(Greenwich Mean Time),简称GMT,实际上与世界时UT(universal time )基本一致。 UTC - 协调世界时(Universal Time Coordinated&…

matlab恢复默认窗口布局

1.点击主页,选择布局 2.选择默认,即可恢复到默认的窗口布局

Linux系统上搭建Vulhub靶场

Linux系统上搭建Vulhub靶场 ​vulhub​ 是一个开源的漏洞靶场,它提供了各种易受攻击的服务和应用程序,供安全研究人员和学习者测试和练习。要在 Linux 系统上安装和运行 vulhub​,可以按照以下步骤进行: 1. 安装 Docker 和 Docke…

C#软键盘设计字母数字按键处理相关事件函数

应用场景:便携式设备和检测设备等小型设备经常使用触摸屏来代替键盘鼠标的使用,因此在查询和输入界面的文本或者数字输入控件中使用软件盘来代替真正键盘的输入。 软键盘界面:软键盘界面实质上就是一个普通的窗体上面摆放了很多图片按钮&…

二叉树---java---黑马

二叉树 遍历 遍历分两种 广度优先遍历 尽可能先访问距离根节点最近的节点,也称之为层序遍历。 深度优先遍历 对于二叉树,进一步分为三种 pre-order前序遍历,对于每一颗子树,先访问该节点,然后是左子树&#xf…

探索RESTful风格的网络请求:构建高效、可维护的API接口【后端 20】

探索RESTful风格的网络请求:构建高效、可维护的API接口 在当今的软件开发领域,RESTful(Representational State Transfer)风格的网络请求已经成为构建Web服务和API接口的标配。RESTful风格以其简洁、无状态、可缓存以及分层系统等…

利用影刀实现批量发布文章的RPA流程(附视频演示)

前言 大家好,我是小智。在这篇文章中,我将分享一个实战案例,展示如何利用影刀实现批量发布文章的RPA流程。这里主要介绍其中一个简单步骤,其它步骤将通过视频演示。有使用方面的疑问可以留言。 影刀是一款强大的自动化工具&#x…

Java项目实战II基于Java+Spring Boot+MySQL的网上租贸系统设计与实现(开发文档+源码+数据库)

目录 一、前言 二、技术介绍 三、系统实现 四、论文参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 "随着…

简单的云存储靶场

搭建靶场 我这里使用tx云,请自行搭建 https://shuihui2211-1329809954.cos.ap-nanjing.myqcloud.com 复现 私有读写 访问权限为私有读写时,我们访问url则会出现如下提示 目录遍历 漏洞成因 将policy权限设置为所有操作时 复现 我这里上传了一…