Files
file-online-preview/server/src/main/config/application详细.properties

544 lines
24 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.
####################################### 服务器基础配置不可动态配置需重启生效#######################################
####################### 1.1 服务器网络配置 #######################
# 服务器端口号默认8012可通过环境变量 KK_SERVER_PORT 覆盖
# 修改端口后需重启服务生效
server.port = ${KK_SERVER_PORT:8012}
# 服务器上下文路径默认为根路径可通过环境变量 KK_CONTEXT_PATH 覆盖
# 示例设置为 /preview 访问地址为 http://localhost:8012/preview
server.servlet.context-path = ${KK_CONTEXT_PATH:/}
# 服务器请求和响应编码字符集设置为UTF-8以支持中文和国际化
server.servlet.encoding.charset = utf-8
####################### 1.2 服务器性能优化配置 #######################
# 启用GZIP压缩功能减少网络传输数据量提升页面加载速度
# 建议在生产环境中开启以节省带宽
server.compression.enabled = true
# 允许压缩的响应缓冲区最小字节数默认为2048字节
# 小于此值的响应不压缩避免小文件压缩反而增加开销
server.compression.min-response-size = 2048
# 支持GZIP压缩的MIME类型列表包括常见的前端资源格式
# 可根据需要添加或删除特定的MIME类型
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
####################### 1.3 文件上传限制配置 #######################
# 单个文件上传最大限制默认为500MB
# 根据业务需求和服务器内存大小调整
spring.servlet.multipart.max-file-size = 500MB
# 整个请求体含多个文件最大限制默认为500MB
# 设置时应大于等于 max-file-size
spring.servlet.multipart.max-request-size = 500MB
####################### 1.4 FreeMarker模板引擎配置 #######################
# FreeMarker模板加载路径默认为classpath下的web目录
# 模板文件应放置在此目录下
spring.freemarker.template-loader-path = classpath:/web/
# 是否启用模板缓存开发环境建议设置为false生产环境建议设置为true
# false: 每次请求都重新加载模板便于调试
# true: 缓存模板提升性能
spring.freemarker.cache = false
# 模板文件编码设置为UTF-8以支持中文和国际化字符
spring.freemarker.charset = UTF-8
# 检查模板位置是否存在启动时验证模板路径
spring.freemarker.check-template-location = true
# 模板内容类型设置为HTML格式
spring.freemarker.content-type = text/html
# 将HTTP请求属性暴露给模板便于模板访问请求参数头部等信息
spring.freemarker.expose-request-attributes = true
# 将HTTP会话属性暴露给模板便于模板访问会话数据
spring.freemarker.expose-session-attributes = true
# 设置模板中访问请求上下文的变量名
# 在模板中使用 ${request} 访问请求对象
spring.freemarker.request-context-attribute = request
# 模板文件后缀默认为.ftl
# 模板文件应命名为 *.ftl
spring.freemarker.suffix = .ftl
####################### 1.5 Spring Boot健康监控配置 #######################
# 开启的健康检查端点包括healthinfometrics
# health: 应用健康状态
# info: 应用基本信息
# metrics: 应用性能指标
management.endpoints.web.exposure.include = health,info,metrics
# 健康检查端点显示详细信息的策略默认为always总是显示
# 生产环境建议设置为 when-authorized never避免敏感信息泄露
management.endpoint.health.show-details = always
# 启用默认的健康检查组件监控应用核心组件状态
management.health.defaults.enabled = true
####################################### Office文档处理配置部分支持动态配置#######################################
####################### 2.1 Office组件安装路径配置 #######################
# OpenOffice或LibreOffice安装路径默认为default表示使用系统默认路径
# Windows示例注意双反斜杠C:\\Program Files (x86)\\OpenOffice 4
# Linux示例/opt/libreoffice
# MacOS示例/Applications/LibreOffice.app/Contents
office.home = ${KK_OFFICE_HOME:default}
####################### 2.2 Office转换服务配置 #######################
# Office转换服务监听的端口默认开启两个进程分别监听2001和2002端口
# 多个端口用逗号分隔系统会自动启动多个进程处理转换任务
office.plugin.server.ports = 2001,2002
# Office转换任务总超时时间默认为5分钟
# 超过此时间的任务将被强制终止释放资源
office.plugin.task.timeout = 5m
# Office进程在重启前可执行的最大任务数默认为200
# 0表示无限不重启适当限制可避免内存泄漏
office.plugin.task.maxtasksperprocess = 200
# Office任务执行超时时间默认为5分钟
# 单个任务处理超过此时间将被中止处理下一个任务
office.plugin.task.taskexecutiontimeout = 5m
####################### 2.3 Office转换参数配置支持动态更新#######################
# 是否启用Office文档分页转换默认为false转换全部页面
# 可设置为页面范围"1-5"表示只转换前5页
office.pagerange = ${KK_OFFICE_PAGERANGE:false}
# 是否启用Office文档水印功能默认为false不启用
# 启用后会在转换的图片或PDF上添加水印
office.watermark = ${KK_OFFICE_WATERMARK:false}
# Office文档转图片的JPEG压缩质量范围1-100默认80
# 值越高图片质量越好但文件越大建议80-90之间
office.quality = ${KK_OFFICE_QUALITY:80}
# Office文档转图片的最大分辨率DPI默认150
# 值越高图片越清晰但文件越大转换时间越长
# 建议范围72屏幕显示-300打印质量
office.maximageresolution = ${KK_OFFICE_MAXIMAGERESOLUTION:150}
# 是否导出Office文档中的书签到PDF默认为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}
####################################### 文件存储与缓存配置 #######################################
####################### 3.1 文件存储路径配置 #######################
# 预览生成资源的存储路径默认为应用根路径下的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}
####################### 3.2 缓存核心配置 #######################
# 是否启用缓存功能默认为true启用
# 启用缓存可显著提升重复文件的预览速度
cache.enabled = ${KK_CACHE_ENABLED:true}
# 缓存实现类型默认为jdk使用JDK内置对象实现
# 可选值
# jdk: JDK内置ConcurrentHashMap单机部署推荐
# redis: Redis分布式缓存集群部署推荐
# default: 内嵌RocksDB支持持久化
cache.type = ${KK_CACHE_TYPE:jdk}
####################### 3.3 Redis缓存详细配置仅当cache.type=redis时生效#######################
# 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连接密码无密码时留空
# 注意密码包含特殊字符时需使用URL编码
spring.redisson.password = ${KK_SPRING_REDISSON_PASSWORD:}
# Redis数据库索引默认为00-15
# 不同业务可使用不同数据库隔离
spring.redisson.database = ${KK_SPRING_REDISSON_DATABASE:0}
####################### 3.4 缓存维护配置 #######################
# 是否启用缓存自动清理默认为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 * * ?}
####################################### 安全与访问控制配置支持动态配置#######################################
####################### 4.1 服务地址配置 #######################
# 提供预览服务的完整地址默认从请求URL自动获取
# 当使用Nginx等反向代理时必须手动设置此地址
# 示例https://file.keking.cn
# 示例http://192.168.1.100:8012
base.url = ${KK_BASE_URL:default}
####################### 4.2 信任主机白名单配置重要安全配置#######################
# 信任站点白名单配置多个域名用逗号隔开
# 安全提示为防止SSRF服务器端请求伪造攻击必须配置信任主机
# 如果不配置系统将默认拒绝所有外部文件预览请求
#
# 配置示例
# trust.host = kkview.cn,yourdomain.com,cdn.example.com,192.168.1.*
#
# 支持通配符
# * 匹配所有字符
# ? 匹配单个字符
# 192.168.* 匹配192.168开头的所有IP
#
# 当前配置允许所有域名仅建议测试环境使用生产环境必须修改
trust.host = *
####################### 4.3 不信任主机黑名单配置 #######################
# 不信任站点黑名单配置多个用逗号隔开
# 黑名单优先级高于白名单设置后将禁止预览来自这些站点的文件
# 建议配置禁止访问内网地址和本地地址防止内部信息泄露
#
# 配置示例
# 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}
####################### 4.4 文件类型安全限制 #######################
# 禁止上传和预览的文件类型多个用逗号隔开
# 默认禁止可执行文件和系统文件防止恶意文件上传
# exe: Windows可执行文件
# dll: Windows动态链接库
# dat: 数据文件可能包含敏感信息
prohibit = ${KK_PROHIBIT:exe,dll,dat}
####################################### 文件格式与预览配置支持动态配置#######################################
####################### 5.1 文本文件类型配置 #######################
# 支持的文本文件类型多个用逗号隔开
# 这些文件将直接在前端以文本形式展示无需转换
# 默认支持常见编程语言配置文件和文档格式
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}
####################### 5.2 多媒体文件类型配置 #######################
# 支持的媒体文件类型多个用逗号隔开
# 这些文件将使用HTML5原生播放器或转换后播放
# 默认支持主流音频视频和流媒体格式
media = ${KK_MEDIA:mp3,wav,mp4,flv,mpd,m3u8,ts,mpeg,m4a}
# 支持格式转换的视频类型多个用逗号隔开
# 这些格式的视频将被转换为mp4格式以确保浏览器兼容性
# 视频转换消耗资源较大建议根据服务器性能配置
convertMedias = ${KK_CONVERTMEDIAS:avi,mov,wmv,mkv,3gp,rm,mpeg}
####################### 5.3 图片文件类型配置 #######################
# TIF/TIFF格式图片预览模式可选值jpgpdf
# tif: 使用前端Tiff.js插件直接浏览需要浏览器支持
# jpg: 服务器转换为JPG格式后显示兼容性好
# pdf: 服务器转换为PDF格式显示支持多页和打印
tif.preview.type = ${KK_TIF_PREVIEW_TYPE:tif}
# CAD设计文件预览模式可选值tifsvgpdf
# tif: 转换为TIFF格式使用前端插件浏览
# svg: 转换为SVG矢量格式缩放不失真
# pdf: 转换为PDF格式便于打印和标注
cad.preview.type = ${KK_CAD_PREVIEW_TYPE:svg}
####################### 5.4 Office文档预览配置 #######################
# Office类型文档WordPPTExcel预览样式可选值imagepdf
# image: 转换为图片序列兼容性好支持水印
# pdf: 转换为PDF格式支持文本复制打印
# 用户可在预览界面切换模式除非禁用切换开关
office.preview.type = ${KK_OFFICE_PREVIEW_TYPE:image}
# 是否关闭Office预览模式切换开关默认为false允许切换
# 设置为true时用户无法在图片和PDF模式间切换
office.preview.switch.disabled = ${KK_OFFICE_PREVIEW_SWITCH_DISABLED:false}
####################### 5.5 PDF文档预览配置 #######################
# 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}
####################### 5.6 水印配置 #######################
# 水印文本内容为空表示不添加水印
# 示例内部文件严禁外泄
watermark.txt = ${WATERMARK_TXT:}
# 水印在X轴方向的间隔像素默认为10
# 值越小水印越密集值越大水印越稀疏
watermark.x.space = ${WATERMARK_X_SPACE:10}
# 水印在Y轴方向的间隔像素默认为10
watermark.y.space = ${WATERMARK_Y_SPACE:10}
# 水印字体默认为"微软雅黑"
# 注意服务器需要安装对应字体Linux服务器可能需要安装中文字体
watermark.font = ${WATERMARK_FONT:微软雅黑}
# 水印字体大小默认为18px
# 建议根据水印文本长度调整
watermark.fontsize = ${WATERMARK_FONTSIZE:18px}
# 水印字体颜色默认为black黑色
# 支持格式颜色名black, white, red等十六进制#000000RGBrgb(0,0,0)
watermark.color = ${WATERMARK_COLOR:black}
# 水印透明度范围0.005-1默认为0.220%不透明度
# 值越小水印越淡值越大水印越明显
watermark.alpha = ${WATERMARK_ALPHA:0.2}
# 单个水印块的宽度像素默认为180
# 需要根据水印文本长度调整
watermark.width = ${WATERMARK_WIDTH:180}
# 单个水印块的高度像素默认为80
watermark.height = ${WATERMARK_HEIGHT:80}
# 水印倾斜度数范围0-90默认为10度
# 0度水平水印90度垂直水印
watermark.angle = ${WATERMARK_ANGLE:10}
# CAD文件是否添加水印默认为true启用
cad.watermark = true
####################################### 性能与资源管理配置支持动态配置#######################################
####################### 6.1 线程池配置 #######################
# PDF转换最大并发线程数默认为10
# 根据服务器CPU核心数调整建议为核心数×2
pdf.max.threads = 10
# CAD转换线程数默认为5
# CAD转换较耗时不宜设置过高
cad.thread = ${KK_CAD_THREAD:5}
# TIF转换线程数默认为5
tif.thread = 5
####################### 6.2 超时配置按文件大小分类#######################
# 是否启用视频转换超时控制默认为true启用
media.timeout.enabled = true
# 视频文件大小分类及超时时间单位
# 小文件<50MB30秒超时
media.small.file.timeout = 30
# 中等文件50-150MB60秒超时
media.medium.file.timeout = 60
# 大文件150-300MB180秒超时3分钟
media.large.file.timeout = 180
# 超大文件300-600MB300秒超时5分钟
media.xl.file.timeout = 300
# XXL文件600-1200MB600秒超时10分钟
media.xxl.file.timeout = 600
# XXXL文件>1200MB1200秒超时20分钟
media.xxxl.file.timeout = 1200
####################### 6.3 超时配置按PDF页数分类#######################
# PDF文件按页数分类的超时配置单位
# 小文件0-50页90秒超时
pdf.timeout.small = 90
# 中等文件51-200页180秒超时3分钟
pdf.timeout.medium = 180
# 大文件201-500页300秒超时5分钟
pdf.timeout.large = 300
# 超大文件>500页600秒超时10分钟
pdf.timeout.xlarge = 600
# CAD转换超时时间默认为90秒
cad.timeout = ${KK_CAD_TIMEOUT:90}
# TIF转换超时时间默认为90秒
tif.timeout = 90
####################### 6.4 资源限制配置 #######################
# 视频转换最大文件大小限制单位MB默认为300MB
# 超过此大小的视频文件禁止转换避免服务器资源耗尽
media.convert.max.size = 300
# 是否禁用视频格式转换功能默认为true禁用
# 重要视频转换非常消耗CPU和内存资源
# 启用前确保1服务器性能充足 2配置异步处理 3增加线程池
media.convert.disable = ${KK_MEDIA_CONVERT_DISABLE:true}
####################### 6.5 DPI优化配置 #######################
# 是否启用PDF DPI智能调整默认为true启用
# 根据PDF页数自动调整DPI平衡清晰度和性能
pdf.dpi.enabled = true
# PDF转图片的基准DPI默认为144
# 当DPI优化禁用时使用此值
pdf2jpg.dpi = ${KK_PDF2JPG_DPI:144}
# PDF按页数范围的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
####################################### FTP文件访问配置支持动态配置#######################################
####################### 7.1 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
####################################### 首页与文件管理配置支持动态配置#######################################
####################### 8.1 首页功能配置 #######################
# 是否禁用首页文件上传功能默认为false不禁用
# 设置为true可关闭上传功能仅用于预览
file.upload.disable = false
# 网站备案信息显示在首页底部默认为空
# 示例京ICP备12345678号
beian = ${KK_BEIAN:default}
# 首页初始化加载的页码默认为1第一页
home.pagenumber = ${DEFAULT_HOME_PAGENUMBER:1}
# 首页是否启用分页功能默认为true启用
home.pagination = ${DEFAULT_HOME_PAGINATION:true}
# 首页每页显示的文件数量默认为15
home.pagesize = ${DEFAULT_HOME_PAGSIZE:15}
# 首页是否显示搜索框默认为true显示
home.search = ${DEFAULT_HOME_SEARCH:true}
####################### 8.2 文件删除安全配置 #######################
# 是否启用验证码验证删除文件默认为false不启用
# 启用后删除文件需要输入验证码防止误删
delete.captcha = ${KK_DELETE_CAPTCHA:false}
# 删除文件密码默认为123456
# 删除文件时需要验证此密码如果启用了验证码两者都需要
delete.password = ${KK_DELETE_PASSWORD:123456}
# 是否删除转换后的源文件默认为true删除
# 启用可节约磁盘空间但会丢失原始文件
# 注意删除后无法重新转换只能重新上传
delete.source.file = ${KK_DELETE_SOURCE_FILE:true}
####################################### 权限与认证配置支持动态配置#######################################
####################### 9.1 功能权限配置 #######################
# 是否启用图片预览权限默认为true启用
# 设置为false可禁用所有图片预览功能
kk.Picturespreview = true
# 是否启用跨域文件获取权限默认为true启用
# 设置为false可防止跨站请求伪造CSRF
kk.Getcorsfile = true
# 是否启用添加异步任务权限默认为true启用
# 大文件转换通常使用异步任务处理
kk.addTask = true
# API密钥功能默认为false禁用
# 启用后需要提供密钥才能调用API
kk.Key = false
####################### 9.2 加密与认证配置 #######################
# AES加密密钥必须为16位字符
# 启用AES加密时接入方需使用相同的密钥
# 用于敏感数据传输加密
ase.key = 1234567890123456
# Basic认证配置格式域名:用户名:密码多个用逗号分隔
# 用于保护特定域名的访问
# 示例192.168.0.1:admin:pass123,example.com:user:pass456
basic.name = 10.99.1.2:aaa:bbb
# User-Agent验证字符串默认为99999
# 可用于简单的客户端验证
useragent = 99999
####################################### 高级功能与兼容性配置支持动态配置#######################################
####################### 10.1 SSL/TLS安全配置 #######################
# 是否忽略SSL证书验证默认为true忽略
# 用于开发环境或自签名证书场景
# 生产环境建议设置为false启用完整的证书验证
kk.ignore.ssl = true
####################### 10.2 重定向功能配置 #######################
# 是否启用URL重定向功能默认为true启用
# 用于处理文件下载外部资源引用等场景
kk.enable.redirect = true