feat(server): implement chat file TTL cleanup and enhance JPush vendor channel support
Add FileCleanupWorker for automatic expiration of chat files with configurable retention period and batch processing. Files uploaded via `/api/v1/uploads/files` are tracked in `uploaded_files` table with expiration timestamps, then deleted from S3 and database upon expiry. Expired file URLs are injected as `"expired": true` in message responses. Extend JPush push notification configuration with vendor-specific channel_id support (xiaomi, huawei, oppo, vivo, meizu, honor, fcm) for differentiating system vs chat notifications. Add iOS APNs thread-id grouping configuration for notification categorization.
This commit is contained in:
@@ -288,11 +288,54 @@ report:
|
||||
# 极光推送配置
|
||||
# 环境变量:
|
||||
# APP_JPUSH_ENABLED, APP_JPUSH_APP_KEY, APP_JPUSH_MASTER_SECRET, APP_JPUSH_PRODUCTION
|
||||
# 厂商通道 channel_id(区分系统消息与私聊消息,通过 options.third_party_channel 下发):
|
||||
# APP_JPUSH_CHANNEL_SYSTEM, APP_JPUSH_CHANNEL_CHAT
|
||||
# APP_JPUSH_CHANNEL_XIAOMI_SYSTEM, APP_JPUSH_CHANNEL_XIAOMI_CHAT
|
||||
# APP_JPUSH_CHANNEL_HUAWEI_SYSTEM, APP_JPUSH_CHANNEL_HUAWEI_CHAT
|
||||
# APP_JPUSH_CHANNEL_OPPO_SYSTEM, APP_JPUSH_CHANNEL_OPPO_CHAT
|
||||
# APP_JPUSH_CHANNEL_VIVO_SYSTEM, APP_JPUSH_CHANNEL_VIVO_CHAT
|
||||
# APP_JPUSH_CHANNEL_MEIZU_SYSTEM, APP_JPUSH_CHANNEL_MEIZU_CHAT
|
||||
# APP_JPUSH_CHANNEL_HONOR_SYSTEM, APP_JPUSH_CHANNEL_HONOR_CHAT
|
||||
# APP_JPUSH_CHANNEL_FCM_SYSTEM, APP_JPUSH_CHANNEL_FCM_CHAT
|
||||
# 小米消息模板(可选,配置后私信消息携带 channel_id 与 mi_template_id):
|
||||
# APP_JPUSH_CHANNEL_XIAOMI_MI_SYSTEM_TEMPLATE_ID, APP_JPUSH_CHANNEL_XIAOMI_MI_CHAT_TEMPLATE_ID
|
||||
# OPPO 私信模板(可选,仅 OPPO,配置后下发私信时携带):
|
||||
# APP_JPUSH_CHANNEL_OPPO_SYSTEM_PRIVATE_TEMPLATE_ID, APP_JPUSH_CHANNEL_OPPO_CHAT_PRIVATE_TEMPLATE_ID
|
||||
# iOS 通知分组 thread-id:
|
||||
# APP_JPUSH_CHANNEL_IOS_CHAT_THREAD_ID, APP_JPUSH_CHANNEL_IOS_SYSTEM_THREAD_ID
|
||||
jpush:
|
||||
enabled: false
|
||||
app_key: ""
|
||||
master_secret: ""
|
||||
production: false # true: 生产环境, false: 开发环境
|
||||
# 厂商通道 channel_id 配置(全部可选,留空则不下发对应厂商字段)
|
||||
# channel.system / channel.chat 为各厂商默认 channel_id
|
||||
# channel.vendor.{vendor}.{system|chat} 可单独覆盖某厂商,留空则回退到默认值
|
||||
# 小米/OPPO 额外支持消息模板 id(按场景区分),配置后私信消息下发时携带
|
||||
# 其余厂商(华为/VIVO/魅族/荣耀/FCM)仅 channel_id
|
||||
channel:
|
||||
system: "" # 系统消息/通知默认 channel_id
|
||||
chat: "" # 私聊/群聊消息默认 channel_id
|
||||
vendor:
|
||||
xiaomi:
|
||||
system: ""
|
||||
chat: ""
|
||||
mi_system_template_id: "" # 小米系统消息模板 id
|
||||
mi_chat_template_id: "" # 小米私聊消息模板 id
|
||||
huawei: { system: "", chat: "" }
|
||||
oppo:
|
||||
system: ""
|
||||
chat: ""
|
||||
oppo_system_private_template_id: "" # OPPO 系统消息私信模板 id
|
||||
oppo_chat_private_template_id: "" # OPPO 私聊消息私信模板 id
|
||||
vivo: { system: "", chat: "" }
|
||||
meizu: { system: "", chat: "" }
|
||||
honor: { system: "", chat: "" }
|
||||
fcm: { system: "", chat: "" }
|
||||
# iOS APNs 通知分组(按 thread-id 区分系统/私聊通知,不配置则不分组)
|
||||
ios:
|
||||
chat_thread_id: "" # 私聊/群聊通知分组 thread-id
|
||||
system_thread_id: "" # 系统消息/通知分组 thread-id
|
||||
|
||||
# 初始化超级管理员密钥
|
||||
# 环境变量: APP_SETUP_SECRET
|
||||
|
||||
Reference in New Issue
Block a user