端到端延迟里有一半是轮询空等:收发两侧各等一次,1 分钟周期下平均空等 60 秒、最坏 120 秒,这是「一页文件也要 2 分钟」的主因,而真正干活不到 2 秒。 改成 5 秒是安全的:空目录一轮只有两次 Files.list + 过滤,开销可忽略; Spring 的 cron 任务要等上一轮跑完才排下一轮,同一实例内不会重叠。 副作用是损坏包被更频繁重试(失败包当前不删除也不改名,mtime 最老所以 每轮排第一),彻底解决靠方案 5.2 的 .error 改名让位。 部署说明第 10 条原来写「不要改成秒级」,与新默认值矛盾,一并纠正。
62 lines
2.1 KiB
Plaintext
62 lines
2.1 KiB
Plaintext
# =============================================================================
|
||
# s-file 交付配置 —— 外网机(拷到外网服务器后 mv 成 .env)
|
||
#
|
||
# 与内网机只差:角色/传输方向/站点根/网段/机器号/目录名/口令/JWT
|
||
# 装机后必须立刻改的两处:admin 登录口令、新用户初始密码 USER_DEFAULT_PASSWORD
|
||
# =============================================================================
|
||
|
||
# ---------- 本机角色 ----------
|
||
SFILE_ROLE=ow
|
||
SFILE_TRANSFER_LOCATION=2
|
||
SFILE_SITE_ROOT=/usr/share/nginx/outside
|
||
|
||
# ---------- 镜像(images/ 里的 tar docker load 后就是这些 tag) ----------
|
||
APP_IMAGE=sfile-app:1.0.0
|
||
WEB_IMAGE=sfile-web:1.0.0
|
||
PG_IMAGE=postgres:18
|
||
REDIS_IMAGE=redis:8
|
||
MQ_IMAGE=rabbitmq:3.13-management-alpine
|
||
PG_DATA_DIR=/var/lib/postgresql
|
||
|
||
# ---------- 对外访问:只暴露前端 ----------
|
||
WEB_HOST=0.0.0.0
|
||
WEB_PORT=80
|
||
|
||
# ---------- 口令与密钥(与内网机不同) ----------
|
||
POSTGRES_DB=s_file
|
||
POSTGRES_USER=sfile
|
||
POSTGRES_PASSWORD=Sfile-ow-Pg-pT-673--i1rk
|
||
MQ_USER=sfile
|
||
MQ_PASSWORD=Sfile-ow-Mq-sfW5Cv-Nk-cA
|
||
JWT_SECRET=9eeeea031052a156bb278607f89dac3e45282f8a934fa0ba01c24facacde6988
|
||
USER_DEFAULT_PASSWORD=Sfile-ow-Usr-WqDJ7PDS
|
||
|
||
# ---------- 发号器与容器网段 ----------
|
||
APP_SUBNET=172.30.98.0/24
|
||
APP_GATEWAY=172.30.98.1
|
||
APP_NODE_IP=172.30.98.10
|
||
APP_WORK_ID=2
|
||
|
||
# ---------- 主机数据目录 ----------
|
||
SFILE_DATA_ROOT=/data/sfile
|
||
GATE_SEND_DIR=/data/sfile/gate/out
|
||
GATE_RECV_DIR=/data/sfile/gate/in
|
||
|
||
# ---------- MeshSafe 文件安全检测 ----------
|
||
# 外网机一般也走一次检测(接收解包后送检);该侧不部署 MeshSafe 时置 MESHSAFE_ENABLED=false
|
||
MESHSAFE_ENABLED=true
|
||
MESHSAFE_BASE_URL=http://host.docker.internal:44380
|
||
MESHSAFE_CLIENT_ID=sfile-ow
|
||
MESHSAFE_SECRET=CHANGE_ME_meshsafe_secret
|
||
MESHSAFE_CHANNEL=sfile-ow
|
||
MESHSAFE_FAIL_OPEN=true
|
||
MESHSAFE_TIMEOUT_SECONDS=120
|
||
MESHSAFE_POLL_TIMEOUT_MINUTES=60
|
||
MESHSAFE_POLL_CRON=0/10 * * * * ?
|
||
|
||
# ---------- 资源与运行时 ----------
|
||
TZ=Asia/Shanghai
|
||
APP_JAVA_OPTS=-Xms1g -Xmx3g -Dfile.encoding=UTF-8
|
||
REDIS_MAXMEMORY=512mb
|
||
FILE_TRANSFER_MONITOR_CRON=0/5 * * * * ?
|