Pārlūkot izejas kodu

更新脚本和 README.md

reghao 1 gadu atpakaļ
vecāks
revīzija
e07153f97a
11 mainītis faili ar 351 papildinājumiem un 119 dzēšanām
  1. 43 51
      README.md
  2. 0 30
      zzz/build_image.sh
  3. 30 9
      zzz/build_jar.sh
  4. 40 0
      zzz/db_init.sh
  5. 0 4
      zzz/deploy.sh
  6. 0 21
      zzz/init_schema.sh
  7. 0 4
      zzz/install.sh
  8. 27 0
      zzz/install_sdk.sh
  9. 73 0
      zzz/schema/file_meta.sql
  10. 138 0
      zzz/schema/reghao_oss_tdb.sql
  11. 0 0
      zzz/store_init.sql

+ 43 - 51
README.md

@@ -7,7 +7,7 @@
 - maven:3.9
 - mysql:5.7
 
-## 架构
+## 模块
 oss 项目模块:
 - oss-api
 - oss-sdk
@@ -23,6 +23,7 @@ oss 项目模块:
 > 管理存储节点
 > > 本模块由 [bnt](https://git.reghao.cn/reghao/bnt) 项目实现
 
+### console 和 store
 oss-console 和 oss-store 之间的关系如下图所示:
 ![](https://blog.reghao.cn/file/fa7491b21f3843b089365191c33d10e7.png)
 > store 和 console 之间使用 dubbo rpc 进行通信
@@ -32,62 +33,53 @@ oss-console 和 oss-store 之间的关系如下图所示:
 >
 > 只能部署一个 console 实例
 
-## 初始化 MySQL
-- 1.oss/zzz/oss_init.sql 文件是系统的初始数据
-- 2.执行 oss/zzz/init_schema.sh 脚本可完成数据库的创建和初始化
-> 需要自行指定脚本中的 host, username, password, db 等变量值
-- 3.然后可以开始构建和部署系统
+## 构建部署
+### pull 项目源码
+```
+cd ~/Downloads
+git clone https://git.reghao.cn/reghao/oss.git
+```
 
-## 构建
-根据需要构建的类型使用 wget 获取构建脚本:
+### 初始化 MySQL
+```
+cd ~/Downloads/oss/zzz
+bash db_init.sh
 ```
-# 构建 jar 包使用此脚本
-wget https://git.reghao.cn/reghao/oss/raw/master/zzz/build_jar.sh
+> 执行 db_init.sh 会自动创建 oss 项目需要的数据库并初始化数据库表
+> > 需要自行指定 db_init.sh 脚本中的 host, username, password 等变量值
 
-# 构建 docker 镜像使用此脚本
-wget https://git.reghao.cn/reghao/oss/raw/master/zzz/build_image.sh
+### 构建并运行
 ```
-- 1.修改构建脚本中的 base_dir 变量的值
-- 2.执行构建脚本
-- 3.构建完成
-> 如果使用 build_jar.sh 脚本构建, 生成的 jar 包会存放在 oss/oss-store/bin 目录中
+cd ~/Downloads/oss/zzz
+bash build_jar.sh
+```
+> 执行 db_init.sh 会自动构建并运行 oss-store 应用 jar 包
+> > build_jar.sh 脚本中的 proj_dir 变量默认是 ~/Downloads/oss
 >
-> 如果使用 build_image.sh 脚本构建, 生成的镜像则使用 docker images | grep 'oss-store' 命令查看
-
-## 部署
-oss-store 应用强依赖 oss-console, 必须先启动 oss-console 后再启动 oss-store
-
-### jar 包
-部署 oss-store 流程:
-- 1.修改 oss/oss-store/bin/oss.yml 文件中的配置
-> mysql 配置
-> 
-> server.tomcat.basedir
-> > tomcat 服务器使用的临时目录, 不应将此目录设置到文件存储所在的磁盘
-> 
-> oss.storeHost
-> > oss-store 所部署机器的 IP 地址
-> 
-> oss.storeDirs
-> > 存储文件使用的位置, 每个位置都必须是一块独立的磁盘, 推荐将单块磁盘挂载到此位置
+> mvn 构建默认使用 dev 环境, 所以需要修改每个应用 resources/application-dev.yml 配置文件中的第三方服务配置
+>
+> 运行 oss-store 应用前需要根据环境修改 oss/oss-store/bin/oss.yml 文件中的配置
+> > mysql 配置
 > >
-> 
-> oss.consoleHost
-> > oss-console 所部署机器的 IP 地址
-> 
-- 2.使用 cd 命令切换到 oss/oss-store/bin 目录
-- 3.执行 start1.sh 脚本
-> 如果不使用 oss.yml 配置, 则执行 start2.sh 脚本
+> > server.tomcat.basedir
+> > > tomcat 服务器使用的临时目录, 不应将此目录设置到文件存储所在的磁盘
+> >
+> > oss.storeHost
+> > > oss-store 所部署机器的 IP 地址
+> >
+> > oss.storeDirs
+> > > 存储文件使用的位置, 每个位置都必须是一块独立的磁盘, 推荐将单块磁盘挂载到此位置
+> >
+> > oss.consoleHost
+> > > bnt 所部署机器的 IP 地址
 
-### docker 镜像
+### 停止应用
 ```
-docker run -d --name=bntweb --network=host \
--v /opt/disk/1:/opt/disk/1 \
-reghao/oss-store:12345678
+cd ~/Downloads/oss/zzz
+bash shutdown.sh
 ```
-> 自行指定生成的 image
-> > image 格式是 REPOSITORY:TAG
->
-> 使用 -v 将 host 目录挂载到容器目录
-> 
-> docker 镜像使用 resources/application-test.yml 配置
+> 执行 db_init.sh 会结束 oss-store 应用
+
+### 其他依赖
+oss-store 应用强依赖 oss-console, 必须先启动 oss-console 后再启动 oss-store
+> oss-console 即 [bnt](https://git.reghao.cn/reghao/bnt) 项目

+ 0 - 30
zzz/build_image.sh

@@ -1,30 +0,0 @@
-#!/bin/bash
-
-###############################################################################
-# 构建 oss-store 应用的 docker 镜像
-###############################################################################
-
-set -e
-
-# 代码存放的位置
-base_dir = '/home/reghao/Downloads'
-
-###############################################################################
-# 构建依赖
-###############################################################################
-git clone https://git.reghao.cn/reghao/jutil
-cd jutil
-mvn install package -Dmaven.test.skip=true
-
-###############################################################################
-# 构建 oss-store 应用
-###############################################################################
-cd ${base_dir}
-mvn clean package -Dmaven.test.skip=true -am -pl oss-store -Ptest
-
-###############################################################################
-# 构建 oss-store 应用镜像
-###############################################################################
-commit_id=`git rev-parse HEAD | cut -c 1-8`
-docker_prefix='reghao/oss-store'
-docker build -t ${docker_prefix}:${commit_id} .

+ 30 - 9
zzz/build_jar.sh

@@ -1,23 +1,44 @@
 #!/bin/bash
 
 ###############################################################################
-# 构建 oss-store 应用的 jar 包
+# 构建 oss-store 应用
 ###############################################################################
 
 set -e
 
-# 代码存放的位置
-base_dir = '/home/reghao/Downloads'
+proj_dir='~/Downloads/oss'
 
 ###############################################################################
 # 构建依赖
 ###############################################################################
-git clone https://git.reghao.cn/reghao/jutil
-cd jutil
-mvn install package -Dmaven.test.skip=true
+build_dependencies() {
+  cd ${proj_dir}
+  git clone https://git.reghao.cn/reghao/jutil
+  cd jutil
+  mvn clean install package -Dmaven.test.skip=true
+}
 
 ###############################################################################
-# 构建 oss-store 应用
+# 构建 oss-store 应用 jar 包
+###############################################################################
+build_jar() {
+  cd ${proj_dir}
+  mvn clean package -Dmaven.test.skip
+}
+
 ###############################################################################
-cd ${base_dir}
-mvn clean package -Dmaven.test.skip=true -am -pl oss-store -Ptest
+# 运行 oss-store 应用
+###############################################################################
+exec_jar() {
+  cd ${proj_dir}/oss-store/bin
+  bash start.sh
+}
+
+echo "构建第三方依赖..."
+build_dependencies
+
+echo "构建 oss-store 应用..."
+build_jar
+
+echo "运行 oss-store 应用..."
+exec_jar

+ 40 - 0
zzz/db_init.sh

@@ -0,0 +1,40 @@
+#!/bin/bash
+
+###############################################################################
+# 初始化数据库, 包括创建数据库和初始化数据库表
+###############################################################################
+
+set -e
+
+base_dir=`pwd`
+cd ${base_dir}/schema
+
+host='127.0.0.1'
+username='dev'
+password='Dev@123456'
+
+db1='reghao_oss_tdb'
+
+db11='reghao_oss_rdb'
+
+create_db() {
+sql1="CREATE DATABASE ${db1} DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;"
+
+mysql -h${host} -u${username} -p${password} << EOF
+ ${sql1}
+EOF
+}
+
+init_db() {
+  # 还原整个数据库结构(不包含数据)
+  mysql -h${host} -u${username} -p${password} ${db11} < ${db1}.sql
+
+  # 还原表数据到数据库
+  mysql -h${host} -u${username} -p${password} ${db11} < file_meta.sql
+}
+
+echo "create db..."
+create_db
+
+echo "init db..."
+init_db

+ 0 - 4
zzz/deploy.sh

@@ -1,4 +0,0 @@
-#!/bin/bash
-
-mvn clean deploy -Dmaven.test.skip=true -am -pl oss-api
-mvn clean deploy -Dmaven.test.skip=true -am -pl oss-sdk

+ 0 - 21
zzz/init_schema.sh

@@ -1,21 +0,0 @@
-#!/bin/bash
-
-###############################################################################
-# 创建和初始化数据库
-###############################################################################
-
-set -e
-
-host='192.168.0.210'
-username='test'
-password='Test@123456'
-db='reghao_oss_tdb'
-
-sql="CREATE DATABASE ${db} DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;"
-
-mysql -h${host} -u${username} -p${password} << EOF
-${sql}
-use ${db}
-source ./store_init.sql;
-EOF
-exit;

+ 0 - 4
zzz/install.sh

@@ -1,4 +0,0 @@
-#!/bin/bash
-
-mvn clean install -Dmaven.test.skip=true -am -pl oss-api
-mvn clean install -Dmaven.test.skip=true -am -pl oss-sdk

+ 27 - 0
zzz/install_sdk.sh

@@ -0,0 +1,27 @@
+#!/bin/bash
+
+###############################################################################
+# oss-sdk 模块作为其他模块(应用)的依赖 install 到本地仓库或 deploy 到远程仓库
+###############################################################################
+
+set -e
+
+proj_dir='~/code/java/oss'
+
+install_dependencies() {
+ cd ${proj_dir}
+ mvn clean install -Dmaven.test.skip=true -am -pl oss-api
+ mvn clean install -Dmaven.test.skip=true -am -pl oss-sdk
+}
+
+deploy_dependencies() {
+  cd ${proj_dir}
+  mvn clean deploy -Dmaven.test.skip=true -am -pl oss-api
+  mvn clean deploy -Dmaven.test.skip=true -am -pl oss-sdk
+}
+
+echo "install dependencies on local repo..."
+install_dependencies
+
+#echo "deploy dependencies on remote repo..."
+#deploy_dependencies

+ 73 - 0
zzz/schema/file_meta.sql

@@ -0,0 +1,73 @@
+/*
+ Navicat Premium Data Transfer
+
+ Source Server         : localhost-mysql
+ Source Server Type    : MySQL
+ Source Server Version : 50732
+ Source Host           : 127.0.0.1:3306
+ Source Schema         : reghao_oss_rdb
+
+ Target Server Type    : MySQL
+ Target Server Version : 50732
+ File Encoding         : 65001
+
+ Date: 09/12/2024 17:50:27
+*/
+
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for file_meta
+-- ----------------------------
+DROP TABLE IF EXISTS `file_meta`;
+CREATE TABLE `file_meta` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `deleted` bit(1) NOT NULL DEFAULT b'0',
+  `create_time` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
+  `update_time` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
+  `object_name` varchar(255) NOT NULL,
+  `object_id` varchar(255) NOT NULL,
+  `pid` varchar(255) NOT NULL,
+  `content_id` varchar(255) NOT NULL,
+  `sha256sum` varchar(255) NOT NULL COMMENT '文件的 sha256sum 值',
+  `filename` varchar(255) NOT NULL,
+  `size` bigint(20) NOT NULL,
+  `file_type` int(11) NOT NULL,
+  `content_type` varchar(255) NOT NULL COMMENT 'http content-type',
+  `scope` int(11) NOT NULL,
+  `upload_by` varchar(255) NOT NULL,
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `object_id` (`object_id`) USING BTREE,
+  UNIQUE KEY `UK_rfuvf3osnlaakifjdao0a8e2x` (`object_name`,`upload_by`) USING BTREE,
+  KEY `sha256sum` (`sha256sum`) USING BTREE,
+  KEY `file_type` (`file_type`),
+  KEY `pid` (`pid`),
+  KEY `filename` (`filename`),
+  KEY `acl` (`scope`),
+  KEY `content_id` (`content_id`)
+) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COMMENT='对象元数据';
+
+-- ----------------------------
+-- Records of file_meta
+-- ----------------------------
+BEGIN;
+INSERT INTO `file_meta` (`object_name`,`object_id`,`pid`,`content_id`,`sha256sum`,`filename`,`size`,`file_type`,`content_type`,`scope`,`upload_by`)  VALUES ('image/', 'avZ5NARkrKg28xzBjZK8A2G9z8JbXPyO', '0', '0', '0', 'image', 0, 1000, '0', 1, '2');
+INSERT INTO `file_meta` (`object_name`,`object_id`,`pid`,`content_id`,`sha256sum`,`filename`,`size`,`file_type`,`content_type`,`scope`,`upload_by`)  VALUES ('video/', 'avZ5NARkrKg28xzBjZK8A2G9z8JbXPyP', '0', '0', '0', 'video', 0, 1000, '0', 1, '2');
+INSERT INTO `file_meta` (`object_name`,`object_id`,`pid`,`content_id`,`sha256sum`,`filename`,`size`,`file_type`,`content_type`,`scope`,`upload_by`)  VALUES ('video/playback/', 'avZ5NARkrKg28xzBjZK8A2G9z8JbXPyQ', 'avZ5NARkrKg28xzBjZK8A2G9z8JbXPyP', '0', '0', 'playback', 0, 1000, '0', 1, '2');
+INSERT INTO `file_meta` (`object_name`,`object_id`,`pid`,`content_id`,`sha256sum`,`filename`,`size`,`file_type`,`content_type`,`scope`,`upload_by`)  VALUES ('img/', 'avZ5NARkrKg28xzBjZK8A2G9z8JbXPyy', '0', '0', '0', 'img', 0, 1000, '0', 2, '2');
+INSERT INTO `file_meta` (`object_name`,`object_id`,`pid`,`content_id`,`sha256sum`,`filename`,`size`,`file_type`,`content_type`,`scope`,`upload_by`)  VALUES ('audio/', 'avZ5NARkZK8A2G9z8JbXPyyrKg28xzBj', '0', '0', '0', 'audio', 0, 1000, '0', 1, '2');
+INSERT INTO `file_meta` (`object_name`,`object_id`,`pid`,`content_id`,`sha256sum`,`filename`,`size`,`file_type`,`content_type`,`scope`,`upload_by`)  VALUES ('audio/playback/', 'avZ5NARkZKPyyrKg28xzBj8A2G9z8JbX', 'avZ5NARkZK8A2G9z8JbXPyyrKg28xzBj', '0', '0', 'playback', 0, 1000, '0', 1, '2');
+INSERT INTO `file_meta` (`object_name`,`object_id`,`pid`,`content_id`,`sha256sum`,`filename`,`size`,`file_type`,`content_type`,`scope`,`upload_by`)  VALUES ('image/cover/', 'avZ5NARkrKg28xzBjZK8A2G9zXPyO8Jb', 'avZ5NARkrKg28xzBjZK8A2G9z8JbXPyO', '0', '0', 'cover', 0, 1000, '0', 1, '2');
+INSERT INTO `file_meta` (`object_name`,`object_id`,`pid`,`content_id`,`sha256sum`,`filename`,`size`,`file_type`,`content_type`,`scope`,`upload_by`)  VALUES ('image/avatar/', 'avZ5NARkrKg28xzbBjZK8A2G9zXPyO8J', 'avZ5NARkrKg28xzBjZK8A2G9z8JbXPyO', '0', '0', 'avatar', 0, 1000, '0', 1, '2');
+INSERT INTO `file_meta` (`object_name`,`object_id`,`pid`,`content_id`,`sha256sum`,`filename`,`size`,`file_type`,`content_type`,`scope`,`upload_by`)  VALUES ('image/photo/', 'avZ5NARkrKg2G9zXPyO8J8xzbBjZK8A2', 'avZ5NARkrKg28xzBjZK8A2G9z8JbXPyO', '0', '0', 'photo', 0, 1000, '0', 1, '2');
+INSERT INTO `file_meta` (`object_name`,`object_id`,`pid`,`content_id`,`sha256sum`,`filename`,`size`,`file_type`,`content_type`,`scope`,`upload_by`)  VALUES ('file/', 'ed60aeb1740142dd8f7c5aa8f654104a', '0', '0', '0', 'file', 0, 1000, '0', 1, '2');
+INSERT INTO `file_meta` (`object_name`,`object_id`,`pid`,`content_id`,`sha256sum`,`filename`,`size`,`file_type`,`content_type`,`scope`,`upload_by`)  VALUES ('image/a/', 'e837b3c3ff524847a1f701e1906f2ab8', 'avZ5NARkrKg28xzBjZK8A2G9z8JbXPyO', '0', '0', 'a', 0, 1000, '0', 2, '2');
+INSERT INTO `file_meta` (`object_name`,`object_id`,`pid`,`content_id`,`sha256sum`,`filename`,`size`,`file_type`,`content_type`,`scope`,`upload_by`)  VALUES ('image/i/', 'b24a5c15eb814bbeab957f9a54333b68', 'avZ5NARkrKg28xzBjZK8A2G9z8JbXPyO', '0', '0', 'i', 0, 1000, '0', 2, '2');
+INSERT INTO `file_meta` (`object_name`,`object_id`,`pid`,`content_id`,`sha256sum`,`filename`,`size`,`file_type`,`content_type`,`scope`,`upload_by`)  VALUES ('image/p/', '3bc93348c72e44ffb71275bdf4b60ad4', 'avZ5NARkrKg28xzBjZK8A2G9z8JbXPyO', '0', '0', 'p', 0, 1000, '0', 1, '2');
+INSERT INTO `file_meta` (`object_name`,`object_id`,`pid`,`content_id`,`sha256sum`,`filename`,`size`,`file_type`,`content_type`,`scope`,`upload_by`)  VALUES ('video/cam/', '9125c160bf8c40c19f7834a6ef77620c', 'avZ5NARkrKg28xzBjZK8A2G9z8JbXPyP', '0', '0', 'cam', 0, 1000, '0', 2, '2');
+INSERT INTO `file_meta` (`object_name`,`object_id`,`pid`,`content_id`,`sha256sum`,`filename`,`size`,`file_type`,`content_type`,`scope`,`upload_by`)  VALUES ('im/', '0eae9823e2c0468da41b19a16373092f', '0', '0', '0', 'im', 0, 1000, '0', 1, '2');
+INSERT INTO `file_meta` (`object_name`,`object_id`,`pid`,`content_id`,`sha256sum`,`filename`,`size`,`file_type`,`content_type`,`scope`,`upload_by`)  VALUES ('file0/', '0abde86737714c74ae7274bec41ccfa6', '0', '0', '0', 'file0', 0, 1000, '0', 1, '2');
+COMMIT;
+
+SET FOREIGN_KEY_CHECKS = 1;

+ 138 - 0
zzz/schema/reghao_oss_tdb.sql

@@ -0,0 +1,138 @@
+-- MySQL dump 10.13  Distrib 5.7.42, for Linux (x86_64)
+--
+-- Host: 192.168.0.210    Database: reghao_oss_tdb
+-- ------------------------------------------------------
+-- Server version	5.7.36
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+
+--
+-- Table structure for table `data_block`
+--
+
+DROP TABLE IF EXISTS `data_block`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `data_block` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `deleted` bit(1) NOT NULL DEFAULT b'0',
+  `create_time` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
+  `update_time` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
+  `content_id` varchar(255) NOT NULL,
+  `block_id` varchar(255) NOT NULL,
+  `host` varchar(255) DEFAULT NULL,
+  `absolute_path` varchar(255) NOT NULL COMMENT '本地文件绝对路径',
+  `size` bigint(20) NOT NULL,
+  `base_dir` varchar(255) DEFAULT NULL,
+  `relative_dir` varchar(255) DEFAULT NULL,
+  `index` int(11) DEFAULT NULL,
+  `start` bigint(20) DEFAULT NULL,
+  `end` bigint(20) DEFAULT NULL,
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `content_id` (`content_id`) USING BTREE,
+  KEY `absolute_path` (`absolute_path`),
+  KEY `base_dir` (`base_dir`),
+  KEY `relative_dir` (`relative_dir`),
+  KEY `size` (`size`),
+  KEY `base_dir_2` (`base_dir`,`relative_dir`)
+) ENGINE=InnoDB AUTO_INCREMENT=7481756 DEFAULT CHARSET=utf8mb4 COMMENT='对象数据块';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `file_meta`
+--
+
+DROP TABLE IF EXISTS `file_meta`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `file_meta` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `deleted` bit(1) NOT NULL DEFAULT b'0',
+  `create_time` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
+  `update_time` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
+  `object_name` varchar(255) NOT NULL,
+  `object_id` varchar(255) NOT NULL,
+  `pid` varchar(255) NOT NULL,
+  `content_id` varchar(255) NOT NULL,
+  `sha256sum` varchar(255) NOT NULL COMMENT '文件的 sha256sum 值',
+  `filename` varchar(255) NOT NULL,
+  `size` bigint(20) NOT NULL,
+  `file_type` int(11) NOT NULL,
+  `content_type` varchar(255) NOT NULL COMMENT 'http content-type',
+  `scope` int(11) NOT NULL,
+  `upload_by` varchar(255) NOT NULL,
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `UK_rfuvf3osnlaakifjdao0a8e2x` (`object_name`) USING BTREE,
+  UNIQUE KEY `object_id` (`object_id`) USING BTREE,
+  KEY `sha256sum` (`sha256sum`) USING BTREE,
+  KEY `file_type` (`file_type`),
+  KEY `pid` (`pid`),
+  KEY `filename` (`filename`),
+  KEY `acl` (`scope`),
+  KEY `content_id` (`content_id`),
+  KEY `upload_by` (`upload_by`)
+) ENGINE=InnoDB AUTO_INCREMENT=8188463 DEFAULT CHARSET=utf8mb4 COMMENT='对象元数据';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `file_multipart`
+--
+
+DROP TABLE IF EXISTS `file_multipart`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `file_multipart` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `deleted` bit(1) NOT NULL DEFAULT b'0',
+  `create_time` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
+  `update_time` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
+  `content_id` varchar(255) NOT NULL,
+  `absolute_path` varchar(255) NOT NULL,
+  `sha256sum` varchar(255) NOT NULL COMMENT '文件的 sha256sum 值',
+  `total_size` bigint(20) NOT NULL,
+  `chunk_size` int(11) NOT NULL,
+  `total_chunks` int(11) NOT NULL,
+  `uploaded` bit(1) NOT NULL,
+  `upload_by` int(11) NOT NULL,
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `sha256sum_uploadby` (`sha256sum`,`upload_by`) USING BTREE,
+  UNIQUE KEY `content_id` (`content_id`)
+) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COMMENT='分片文件';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `file_part`
+--
+
+DROP TABLE IF EXISTS `file_part`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `file_part` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `content_id` varchar(255) NOT NULL,
+  `chunk_number` int(11) NOT NULL,
+  `current_chunk_size` int(11) NOT NULL,
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `sha256sum` (`content_id`,`chunk_number`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8mb4 COMMENT='分片文件';
+/*!40101 SET character_set_client = @saved_cs_client */;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+-- Dump completed on 2024-12-15 22:47:21

+ 0 - 0
zzz/store_init.sql