尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

如何快速集成 kkFileView 与 KingbaseES:一份完整的国产化预览与数据备份部署教程

如何快速集成 kkFileView 与 KingbaseES:一份完整的国产化预览与数据备份部署教程 如何快速集成 kkFileView 与 KingbaseES一份完整的国产化预览与数据备份部署教程【免费下载链接】kkFileViewUniversal File Online Preview Project based on Spring-Boot项目地址: https://gitcode.com/GitHub_Trending/kk/kkFileView你大概率遇到过这个场景kkFileView 在线预览服务已经跑了一段时间现在要求把文件元数据谁传的、什么类型、何时归档落到国产化数据库里还要能定期备份。这篇文章带你做 kkFileView 集成 KingbaseES 的完整流程从装库、编译、改配置到验证排错跟着做完你会得到一个 8012 端口可访问的预览服务加一张随时能查询、归档的 KingbaseES 元数据表。选型思路为什么 kkFileView 配 KingbaseES 合适先说清楚三件事避免你走弯路kkFileView 本体是个轻量的预览服务不强依赖数据库接入成本很低——只加一个 JDBC 数据源预览主流程不受影响。KingbaseES V8R6 兼容 PostgreSQL 协议你现有的 PG 生态经验可以直接复用同时满足国产化要求。元数据这类结构化记录适合放关系型数据库而转换出来的预览产物留在磁盘上两边职责分得开互不拖累。动手前检查这一步是排雷。开工前把下面 5 项挨个过一遍每项确认无误再往下走能省掉后面至少一半的调试时间JavaJDK 21 及以上v5.0.0 强制要求先跑java -version确认数据库KingbaseES V8R6 或更高版本默认端口 54321记住system账号的密码端口8012kkFileView 服务、2001/2002Office 转换插件端口、54321KingbaseES三者都不能被占目录权限计划运行 kkFileView 的目录必须有读写权限预览产物就存在这里操作系统Linux / Windows 均可Linux 需另装 LibreOfficeWindows 发行包已内置便携版部署步骤从克隆代码到看到预览页检查项都过了开始动手。全程五步跟着做就行。第 1 步装好 KingbaseES 后建库。安装包按官方文档跑完用自带客户端 ksql 建一个专用库ksql -U system -d kingbase -c CREATE DATABASE kkfileview OWNER system;库建好了后面存元数据的表就放这里。第 2 步克隆 kkFileView 并编译。拉代码后直接打 jar 包git clone https://gitcode.com/GitHub_Trending/kk/kkFileView cd kkFileView mvn clean package -DskipTests第 3 步改主配置。打开server/src/main/config/application.properties本文先动两处可信主机白名单和产物目录详细解释在后面一节trust.host file.your-domain.com file.dir /opt/kkfileview/file/第 4 步启动服务。编译产物在 server/target 下直接拉起java -jar server/target/kkFileView-5.0.0.jar启动日志滚到 Started ServerMain 就表示服务就绪浏览器访问 http://localhost:8012/ 应该能看到首页。第 5 步建元数据表并接上数据源。在 kkfileview 库里建记录表CREATE TABLE doc_record ( id BIGSERIAL PRIMARY KEY, file_name VARCHAR(255), file_type VARCHAR(32), file_size BIGINT, uploader VARCHAR(64), upload_time TIMESTAMP DEFAULT now(), backup_time TIMESTAMP, status VARCHAR(16) DEFAULT PENDING );然后在你的业务模块里引入 KingbaseES JDBC 驱动补上数据源四行spring.datasource.urljdbc:kingbase8://127.0.0.1:54321/kkfileview spring.datasource.usernamesystem spring.datasource.password你的密码 spring.datasource.driver-class-namecom.kingbase8.Driver已有 PostgreSQL 环境的话也可以走 PG 兼容模式URL 前缀改jdbc:postgresql驱动改org.postgresql.Driver其余不变。关键配置项逐个说明只挑 4 个实际最容易出事的配置项讲每个说清是干什么的、配错会怎样。trust.host— 可信主机白名单。4.4.0 起 kkFileView 默认拒绝所有未配置的外部文件预览请求这行不配就只剩本机文件能预览。配错现象页面提示不信任的文件源外链全部打不开。支持*.example.com这种通配写法细则见项目根目录的 SECURITY_CONFIG.md。file.dir— 转换产物存放目录默认在应用根目录下的 file 子目录。指到一个进程没有写权限的路径第一次预览就会报 500且报错信息不太直观只能翻日志。file.upload.disable— 首页上传功能开关默认 true。生产环境建议保持禁用误设为 false 后首页会多出一个上传入口记得配合上一项的白名单一起收敛谁能访问。spring.datasource.url— 元数据库连接串端口必须写 KingbaseES 实际监听口默认 54321。最经典的坑是顺手写成 5432PG 的习惯端口表现是启动时连接超时报错但预览服务本身照常跑很容易被误判成没配成功。验证生效部署跑完做 3 个动作全过才算集成成功。浏览器打开 http://localhost:8012/ 首页能渲染即服务正常也可以用curl http://localhost:8012/actuator/health确认返回 UP。把一个白名单内的文件地址丢给在线预览接口页面能出内容说明预览链路通。以 Word 文件为例转换后按 PDF 模式渲染到元数据库里确认记录真的落进去了SELECT file_name, file_type, status FROM doc_record ORDER BY upload_time DESC LIMIT 5;三处都对得上这套方案就算跑通了。常见坑现象、原因、处理下面 5 个是集成时的高频问题按现象 → 原因 → 处理列出来遇到先对号入座现象原因处理启动即失败日志报 Unsupported major.minorJDK 版本低于 21java -version确认升到 JDK 21 后重新编译服务正常但外部文件预览全被拒4.4.0 起默认拒绝未信任主机trust.host 没配把文件服务器域名加进 trust.host支持*.example.com通配元数据连接超时预览却正常URL 端口写成 5432Kingbase 默认 54321改 spring.datasource.url 的端口与数据库实际监听一致docx/pptx 打不开其他格式正常Linux 上没找到 Office 组件装 LibreOffice用 KK_OFFICE_HOME 环境变量指向安装目录后重启磁盘被预览产物慢慢吃满缓存清理任务被关掉确认 cache.clean.enabled 为 true默认 cron 每天凌晨 3 点清理一次进阶调优可选读基础链路通了再往下看这部分不读不影响使用性能给 doc_record 常查字段补索引并发预览压力大时把office.plugin.server.ports的端口数加多多跑几个转换进程。CREATE INDEX idx_doc_record_status ON doc_record(status); CREATE INDEX idx_doc_record_upload_time ON doc_record(upload_time);安全⚠️ 建议追加not.trust.host屏蔽内网网段192.168.、10.等防止有人借预览接口探测内网对接方需要鉴权时可开启 kk.key 并设置 aes.key必须 16 位。可用KingbaseES 做主备部署kkFileView 的 cache.type 切到 redis 支持多实例前面挂 Nginx 分流即可平滑扩到集群。到这里预览服务和国产化元数据备份链路就接上了。后续可以做的两件事把备份任务挂成定时任务定期把 doc_record 全量导出到冷备存储再接入审计侧让谁在什么时间预览了哪个文件有迹可查。【免费下载链接】kkFileViewUniversal File Online Preview Project based on Spring-Boot项目地址: https://gitcode.com/GitHub_Trending/kk/kkFileView创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表