Files
file-online-preview/server/src/main/config/application.properties
2026-04-14 09:04:43 +08:00

479 lines
19 KiB
Java
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
###############################################################################
# 服务器基础配置需要重启生效
###############################################################################
# 服务器端口号默认8012
# 可以通过环境变量 KK_SERVER_PORT 覆盖
server.port = ${KK_SERVER_PORT:8012}
# 应用上下文路径默认为根路径 /
# 可以通过环境变量 KK_CONTEXT_PATH 覆盖
server.servlet.context-path = ${KK_CONTEXT_PATH:/}
# 字符编码设置统一使用UTF-8
server.servlet.encoding.charset = utf-8
# 启用响应压缩减少网络传输
server.compression.enabled = true
server.compression.min-response-size = 2048
server.compression.mime-types = application/javascript,text/css,application/json,application/xml,text/html,text/xml,text/plain,font/woff,application/font-woff,font/eot,image/svg+xml,image/x-icon
# 文件上传大小限制默认500MB
# 注意需要同时设置spring.servlet.multipart.max-file-size和max-request-size
spring.servlet.multipart.max-file-size = 500MB
spring.servlet.multipart.max-request-size = 500MB
# FreeMarker模板引擎配置
spring.freemarker.template-loader-path = classpath:/web/
spring.freemarker.cache = false
spring.freemarker.charset = UTF-8
spring.freemarker.check-template-location = true
spring.freemarker.content-type = text/html
spring.freemarker.expose-request-attributes = true
spring.freemarker.expose-session-attributes = true
spring.freemarker.request-context-attribute = request
spring.freemarker.suffix = .ftl
# Spring Boot Actuator监控端点配置
management.endpoints.web.exposure.include = health,info,metrics
management.endpoint.health.show-details = always
management.health.defaults.enabled = true
###############################################################################
# Office文档处理配置部分支持动态配置
###############################################################################
# Office组件安装路径默认为自动查找
# Windows示例注意双反斜杠C:\\Program Files (x86)\\OpenOffice 4
# Linux示例/opt/libreoffice
# MacOS示例/Applications/LibreOffice.app/Contents
office.home = ${KK_OFFICE_HOME:default}
# Office组件服务端口支持多个端口实现负载均衡
office.plugin.server.ports = 2001,2002
# Office组件任务超时时间默认5分钟
office.plugin.task.timeout = 5m
# 每个进程最大任务数防止内存溢出
office.plugin.task.maxtasksperprocess = 200
# 任务执行超时时间默认5分钟
office.plugin.task.taskexecutiontimeout = 5m
# Office文档分页范围支持动态配置
# 默认false开启后可以指定转换的页面范围
office.pagerange = ${KK_OFFICE_PAGERANGE:false}
# Office文档水印功能支持动态配置
# 默认false开启后会在Office文档上添加水印
office.watermark = ${KK_OFFICE_WATERMARK:false}
# Office图片质量1-100默认80
# 值越高图片质量越好但文件越大
office.quality = ${KK_OFFICE_QUALITY:80}
# Office图片最大分辨率默认150
# 控制生成图片的最大分辨率
office.maximageresolution = ${KK_OFFICE_MAXIMAGERESOLUTION:150}
# 导出Office书签支持动态配置
# 默认true转换PDF时保留书签
office.exportbookmarks = ${KK_OFFICE_EXPORTBOOKMARKS:true}
# 是否将Office文档中的批注作为PDF注释导出默认为true导出
# 保留批注便于文档审阅
office.exportnotes = ${KK_OFFICE_EXPORTNOTES:true}
# 加密文档生成的PDF是否添加密码默认为true添加
# 密码为原始加密文档的密码增强文档安全性
office.documentopenpasswords = ${KK_OFFICE_DOCUMENTOPENPASSWORD:true}
# Excel文档(xlsx)的前端解析方式默认为webWeb端解析
# web: 使用前端SheetJS库解析减轻服务器压力
# image: 服务器转换为图片兼容性更好
office.type.web = ${KK_OFFICE_TYPE_WEB:web}
# Office文档预览类型
# 支持动态配置可选值image/pdf默认使用pdf模式
office.preview.type = ${KK_OFFICE_PREVIEW_TYPE:pdf}
# 是否关闭Office预览模式切换开关默认为true关闭切换
# 设置为false时用户可以在图片和PDF模式间切换
office.preview.switch.disabled = ${KK_OFFICE_PREVIEW_SWITCH_DISABLED:true}
###############################################################################
# CAD文件处理配置支持动态配置
###############################################################################
# CAD文件预览类型
# svg: 转换为SVG矢量格式缩放不失真
# pdf: 转换为PDF格式便于打印和标注
cad.preview.type = ${KK_CAD_PREVIEW_TYPE:svg}
# Cad转换模块设置(aspose-cad=1 ,cadviewer=3)
# aspose-cad 默认集成到系统,但是特别吃服务器性能 (支持转换格式为 svgpdf)
# cadviewer 下载地址 https://cadviewer.com/alldownloads/autoxchange/ 更具自己系统下载转换包(支持转换格式为 svg、svgz、pdf)
# 1=aspose-cad 转换格式为 pdf,svg,tif 支持类型最多
# 2=cadviewer 转换格式为 pdf,svg 支持的类型 dwg dxf dwf
cad.conversionmodule = 1
# Cad 后端转换包路径 linux 严格注意大小写
# cadviewer windows 修改名称为 cadviewer.exe inux修改名称为 cadviewer 需要安装字体
# cadviewer 字体下载 https://cadviewer.com/downloads/fonts/fonts.tar.gz 放在 cad.file.path 目录里面的fonts.
cad.cadconverterpath = false
# CAD文件处理线程数
cad.thread = ${KK_CAD_THREAD:5}
# CAD文件处理超时时间
cad.timeout = ${KK_CAD_TIMEOUT:90}
###############################################################################
# PDF文件处理配置支持动态配置
###############################################################################
# 是否禁止PDF演示模式默认为true禁止
pdf.presentationMode.disable = ${KK_PDF_PRESENTATION_MODE_DISABLE:true}
# 是否禁止PDF文件菜单中的"打开文件"选项默认为true禁止
pdf.openFile.disable = ${KK_PDF_OPEN_FILE_DISABLE:true}
# 是否禁止PDF打印功能默认为true禁止
pdf.print.disable = ${KK_PDF_PRINT_DISABLE:true}
# 是否禁止PDF下载功能默认为true禁止
pdf.download.disable = ${KK_PDF_DOWNLOAD_DISABLE:true}
# 是否禁止PDF书签/大纲功能默认为true禁止
pdf.bookmark.disable = ${KK_PDF_BOOKMARK_DISABLE:true}
# 是否禁止PDF编辑功能注释表单等默认为false允许编辑
pdf.disable.editing = ${KK_PDF_DISABLE_EDITING:false}
# PDF处理最大线程数控制并发处理能力
pdf.max.threads = 10
# PDF处理超时配置
pdf.timeout.small = 90
pdf.timeout.medium = 180
pdf.timeout.large = 300
pdf.timeout.xlarge = 600
# PDF智能DPI优化
# 是否启用PDF DPI智能调整默认为true启用
# 根据PDF页数自动调整DPI平衡清晰度和性能
pdf.dpi.enabled = true
# PDF转图片的基准DPI默认为144
# 当DPI优化禁用时使用此值
pdf2jpg.dpi = ${KK_PDF2JPG_DPI:144}
# 智能DPI分级配置
# 小文件0-50页150 DPI高质量
pdf.dpi.small = 150
# 中等文件50-100页120 DPI平衡质量与性能
pdf.dpi.medium = 120
# 大文件100-200页96 DPI优化性能
pdf.dpi.large = 96
# 超大文件200-500页72 DPI快速转换
pdf.dpi.xlarge = 72
# 巨量文件>500页72 DPI最小资源消耗
pdf.dpi.xxlarge = 72
###############################################################################
# TIF文件处理配置支持动态配置
###############################################################################
# TIF文件预览类型
# tif: 使用前端Tiff.js插件直接浏览需要浏览器支持
# jpg: 服务器转换为JPG格式后显示
# pdf: 服务器转换为PDF格式显示
tif.preview.type = ${KK_TIF_PREVIEW_TYPE:tif}
# TIF文件处理线程数
tif.thread = 5
# TIF文件处理超时时间
tif.timeout = 90
###############################################################################
# 媒体文件处理配置支持动态配置
###############################################################################
# 媒体文件类型音频视频
media = ${KK_MEDIA:mp3,wav,mp4,flv,mpd,m3u8,ts,mpeg,m4a}
# 需要转换的媒体文件类型
convertMedias = ${KK_CONVERTMEDIAS:avi,mov,wmv,mkv,3gp,rm,mpeg}
# 媒体文件超时控制
media.timeout.enabled = true
media.small.file.timeout = 30
media.medium.file.timeout = 60
media.large.file.timeout = 180
media.xl.file.timeout = 300
media.xxl.file.timeout = 600
media.xxxl.file.timeout = 1200
# 媒体文件转换最大大小MB
media.convert.max.size = 300
# 是否禁用视频格式转换功能默认为false禁用
# 重要视频转换非常消耗CPU和内存资源
media.convert.disable = ${KK_MEDIA_CONVERT_DISABLE:false}
###############################################################################
# 文件存储与缓存配置支持动态配置
###############################################################################
# 预览生成资源的存储路径默认为应用根路径下的file目录
# Windows示例D:\\kkFileview\\注意双反斜杠
# Linux示例/opt/kkfileview/file/
# 重要确保应用有该目录的读写权限
file.dir = ${KK_FILE_DIR:default}
# 允许预览的本地文件夹路径默认为default禁止所有本地文件预览
# 安全警告配置此路径可能允许访问系统文件请谨慎配置
# Windows示例注意前面加反斜杠\D:\\kkFileview\\1\\1.txt
# Linux示例注意前面加正斜杠/opt/1.txt
# 使用file协议访问file://d:/1/1.txtWindows或 file:/opt/1/1.txtLinux
local.preview.dir = ${KK_LOCAL_PREVIEW_DIR:default}
# 是否启用缓存支持动态配置
# 默认true开启缓存提高性能
cache.enabled = ${KK_CACHE_ENABLED:true}
# 缓存实现类型默认为jdk使用JDK内置对象实现
# 可选值
# jdk: JDK内置ConcurrentHashMap单机部署推荐
# redis: Redis分布式缓存集群部署推荐
# default: 内嵌RocksDB支持持久化
cache.type = ${KK_CACHE_TYPE:jdk}
# Redis部署模式默认为single单机模式
# 可选值
# single: 单机模式默认
# cluster: 集群模式
# sentinel: 哨兵模式高可用
# master-slave: 主从模式
spring.redisson.mode = single
# Redis连接地址支持多种格式
# 单机模式redis://127.0.0.1:6379
# 集群模式redis://node1:6379,redis://node2:6379,redis://node3:6379
# 哨兵模式redis://sentinel1:26379,redis://sentinel2:26379
spring.redisson.address = ${KK_SPRING_REDISSON_ADDRESS:redis://127.0.0.1:6379}
# Redis连接密码无密码时留空
spring.redisson.password = ${KK_SPRING_REDISSON_PASSWORD:}
# Redis数据库索引默认为00-15
# 不同业务可使用不同数据库隔离
spring.redisson.database = ${KK_SPRING_REDISSON_DATABASE:0}
# 缓存清理配置
# 是否启用缓存自动清理默认为true启用
# 定期清理过期缓存避免磁盘空间无限增长
cache.clean.enabled = ${KK_CACHE_CLEAN_ENABLED:true}
# 缓存自动清理时间使用Quartz cron表达式默认为每天凌晨3点执行
# 表达式格式 可选
# 0 0 3 * * ? 表示每天3:00:00执行清理
cache.clean.cron = ${KK_CACHE_CLEAN_CRON:0 0 3 * * ?}
###############################################################################
# 安全与访问控制配置支持动态配置
###############################################################################
# 提供预览服务的地址默认从请求url读如果使用nginx等反向代理需要手动设置
# base.url = https://file.keking.cn
base.url = ${KK_BASE_URL:default}
# 信任站点白名单配置多个用','隔开
# 安全提示为防止SSRF攻击强烈建议配置信任主机白名单
# 如果不配置系统将默认拒绝所有外部文件预览请求
# 配置示例
# trust.host = kkview.cn,yourdomain.com,cdn.example.com
# 如果需要允许所有域名不推荐仅用于测试环境请设置为
# trust.host = *
# 当前配置默认本机测试 正式启用请修改
trust.host = ${KK_TRUST_HOST:default}
# 不信任站点黑名单配置多个用逗号隔开
# 黑名单优先级高于白名单设置后将禁止预览来自这些站点的文件
# 建议配置禁止访问内网地址和本地地址防止内部信息泄露
# 配置示例
# not.trust.host = localhost,127.0.0.1,0.0.0.0,192.168.*,10.*,172.16.*,172.17.*,172.18.*,172.19.*,172.20.*,172.21.*,172.22.*,172.23.*,172.24.*,172.25.*,172.26.*,172.27.*,172.28.*,172.29.*,172.30.*,172.31.*
not.trust.host = ${KK_NOT_TRUST_HOST:default}
# 禁止访问的文件类型安全限制
# 支持动态配置格式exe,dll,dat
prohibit = ${KK_PROHIBIT:exe,dll,dat}
# 是否忽略SSL证书验证默认为true忽略
# 用于开发环境或自签名证书场景
# 生产环境建议设置为false启用完整的证书验证
kk.ignore.ssl = false
# 是否启用URL重定向功能默认为true启用
# 用于处理文件下载外部资源引用等场景
kk.enable.redirect = false
###############################################################################
# 水印配置支持动态配置
###############################################################################
# 水印文本内容
# 可以通过环境变量 WATERMARK_TXT 覆盖
watermark.txt = ${WATERMARK_TXT:}
# 水印X轴间距
# 可以通过环境变量 WATERMARK_X_SPACE 覆盖
watermark.x.space = ${WATERMARK_X_SPACE:10}
# 水印Y轴间距
# 可以通过环境变量 WATERMARK_Y_SPACE 覆盖
watermark.y.space = ${WATERMARK_Y_SPACE:10}
# 水印字体
# 可以通过环境变量 WATERMARK_FONT 覆盖
watermark.font = ${WATERMARK_FONT:微软雅黑}
# 水印字体大小
# 可以通过环境变量 WATERMARK_FONTSIZE 覆盖
watermark.fontsize = ${WATERMARK_FONTSIZE:18px}
# 水印颜色
# 可以通过环境变量 WATERMARK_COLOR 覆盖
watermark.color = ${WATERMARK_COLOR:black}
# 水印透明度0.0-1.0
# 可以通过环境变量 WATERMARK_ALPHA 覆盖
watermark.alpha = ${WATERMARK_ALPHA:0.2}
# 水印宽度
# 可以通过环境变量 WATERMARK_WIDTH 覆盖
watermark.width = ${WATERMARK_WIDTH:180}
# 水印高度
# 可以通过环境变量 WATERMARK_HEIGHT 覆盖
watermark.height = ${WATERMARK_HEIGHT:80}
# 水印旋转角度
# 可以通过环境变量 WATERMARK_ANGLE 覆盖
watermark.angle = ${WATERMARK_ANGLE:10}
###############################################################################
# FTP文件访问配置支持动态配置
###############################################################################
# FTP模块设置
# 预览源为FTP时可在ftp url后面加参数?ftp.username=ftpuser&ftp.password=123456&ftp.control.encoding=GBK,指定,不指定默认用配置的 (为了安全我们强烈建议在配置中设置相关信息)
# ftp.control.encodin (根据FTP服务器操作系统选择Linux一般为UTF-8Windows一般为GBK)
# 使用方法,支持,分割第一个是域名或者IP地址后面是用户名在后面是密码,在后面是编码(用户名密码和编码用:分割, 域名用,分割),切记url不需要任何协议头
# ftp.username = 地址:端口:用户名:密码:编码,192.168.0.2:21:name:123456:UTF-8,www.xxx.com:21:admin:pass:UTF-8 多客户端,分割
# ftp.username =10.99.1.2:21:666:88888:GBK
ftp.username = false
###############################################################################
# 十一首页与文件管理配置支持动态配置
###############################################################################
# 是否禁用首页文件上传功能默认为true禁用
# 设置为true可关闭上传功能仅用于预览
file.upload.disable = true
# 网站备案信息显示在首页底部默认为空
beian = ${KK_BEIAN:default}
# 首页初始化加载的页码默认为1第一页
home.pagenumber = ${DEFAULT_HOME_PAGENUMBER:1}
# 首页每页显示的文件数量默认为20
home.pagesize = ${DEFAULT_HOME_PAGSIZE:20}
# 文件删除验证配置
# 是否启用验证码验证删除文件默认为false不启用
# 启用后删除文件需要输入验证码防止误删
delete.captcha = ${KK_DELETE_CAPTCHA:false}
# 删除文件密码默认为123456
delete.password = ${KK_DELETE_PASSWORD:123456}
# 是否删除转换后的源文件默认为true删除
# 启用可节约磁盘空间但会丢失原始文件
delete.source.file = ${KK_DELETE_SOURCE_FILE:true}
###############################################################################
# 十二权限与认证配置支持动态配置
###############################################################################
# 是否启用图片预览权限默认为true启用
# 设置为false可禁用所有图片预览功能
kk.Picturespreview = true
# 是否启用跨域文件获取权限默认为true启用
kk.Getcorsfile = true
# 是否启用添加异步任务权限默认为true启用
# 大文件转换通常使用异步任务处理
kk.addTask = true
# API密钥功能默认为false禁用
# 启用后需要提供密钥才能调用API
kk.key = false
# AES加密密钥必须为16位字符
# 启用AES加密时接入方需使用相同的密钥
# 用于敏感数据传输加密
aes.key = 1234567890123456
# Basic认证配置格式域名:用户名:密码多个用逗号分隔
# 用于保护特定域名的访问
# 示例192.168.0.1:admin:pass123,example.com:user:pass456
basic.name = false
# User-Agent验证字符串默认不启用
# 可用于简单的客户端验证
useragent = false
###############################################################################
# 十三高级功能与兼容性配置支持动态配置
###############################################################################
# 异步配置刷新定时时间
kk.refreshschedule = 2
# 首页是否显示AES密钥 默认为false禁用
kk.isshowaeskey = false
# 是否允许XLSX编辑
kk.xlsxallowedit = false
# 是否显示XLSX工具栏
kk.xlsxshowtoolbar = false
# 首页是否显示key密钥 默认为false禁用
kk.isshowkey = false
# 预览html文件 是否启用JavaScript 默认为true启用
kk.scriptjs = true
###############################################################################
# 十四文件类型分类配置支持动态配置
###############################################################################
# 纯文本文件类型直接显示
simText = ${KK_SIMTEXT:txt,html,htm,asp,jsp,xml,json,properties,md,gitignore,log,java,py,c,cpp,sql,sh,bat,m,bas,prg,cmd}