# oss 一个文件存储系统, 提供文件的存储, 访问和删除等服务, 不支持文件修改. ## 依赖 - os:Linux - jdk:11 - maven:3.9 - mysql:5.7 ## 模块 oss 项目模块: - oss-api - oss-sdk > 可看作 oss 的 client, 第三方使用引入此包可对 oss 中的数据进行操作 > > 和 [aliyun-oss-java-sdk](https://github.com/aliyun/aliyun-oss-java-sdk) 类似 - oss-store > 监听 4010 HTTP 端口和 14010 RPC 端口 > > 存储节点 - oss-console > 监听 4030 HTTP 端口和 14030 RPC 端口 > > 管理存储节点 > > 本模块由 [bnt](https://git.reghao.cn/reghao/bnt) 项目实现 ### console 和 store oss-console 和 oss-store 之间的关系如下图所示: ![](https://blog.reghao.cn/file/fa7491b21f3843b089365191c33d10e7.png) > store 和 console 之间使用 dubbo rpc 进行通信 > > 每台作为存储节点的机器上都需要且只能一个部署 store 实例 > > 在 store 的配置文件中指定 mgr 的地址 > > 只能部署一个 console 实例 ## 构建部署 ### pull 项目源码 ``` cd ~/Downloads git clone https://git.reghao.cn/reghao/oss.git ``` ### 初始化 MySQL ``` cd ~/Downloads/oss/zzz bash db_init.sh ``` > 执行 db_init.sh 会自动创建 oss 项目需要的数据库并初始化数据库表 > > 需要自行指定 db_init.sh 脚本中的 host, username, password 等变量值 ### 构建并运行 ``` cd ~/Downloads/oss/zzz bash build_jar.sh ``` > 执行 db_init.sh 会自动构建并运行 oss-store 应用 jar 包 > > build_jar.sh 脚本中的 proj_dir 变量默认是 ~/Downloads/oss > > mvn 构建默认使用 dev 环境, 所以需要修改 oss-store 应用 resources/application-dev.yml 配置文件中的第三方服务配置 > > 运行 oss-store 应用前需要根据环境修改 oss/oss-store/bin/oss.yml 文件中的配置 > > mysql 配置 > > > > server.tomcat.basedir > > > tomcat 服务器使用的临时目录, 不应将此目录设置到文件存储所在的磁盘 > > > > oss.storeHost > > > oss-store 所部署机器的 IP 地址 > > > > oss.storeDirs > > > 存储文件使用的位置, 每个位置都必须是一块独立的磁盘, 推荐将单块磁盘挂载到此位置 > > > > oss.consoleHost > > > bnt 所部署机器的 IP 地址 > > 默认执行 oss/oss-store/bin 目录中的 start.sh 脚本, 此时使用 oss.yml 配置文件 > > 如果要使用 resources/application-dev.yml 配置文件, 则执行 start1.sh 脚本 ### 停止应用 ``` cd ~/Downloads/oss/zzz bash shutdown.sh ``` > 执行 db_init.sh 会结束 oss-store 应用 ### 其他依赖 oss-store 应用强依赖 oss-console, 必须先启动 oss-console 后再启动 oss-store > oss-console 即 [bnt](https://git.reghao.cn/reghao/bnt) 项目