]> ### &name; #### 🆕 最新更新 (v&version;) - **极致响应**:UI毫秒级响应,主题按钮,提供清爽直观的反馈。 #### 📜 历史改进 - **量子同步**:通过端口监听探测技术,状态灯与实时日志实现物理级同步,消除等待感。 - **安全加固**:引入虚拟数据库(Dummy DB)下的隔离校验引擎,确保 SAVE 动作绝对安全。 - **配置整合**:将分散的配置文件统一到 settings.cfg。 - **逻辑优化**:启停逻辑更顺畅, 界面更整洁。 - **安全加固**:新增二进制文件 SHA256 完整性校验,确保下载安全。 - **逻辑优化**:完善 AJAX 分支切换逻辑,实现版本号与 UI 按钮实时联动。 - **内核升级**:引入架构自适应逻辑,支持跨平台运行。 - **智能安装**:支持本地缓存校验与自动清理,提升安装重启速度。 - **交互重构**:设置界面改为三列布局,实现 config.yaml 可视化管理。 - **动态适配**:端口更改自动同步,新增服务开关、分支切换等功能。 - **运维增强**:新增基于 PHP 的实时日志流监控及一键清空日志功能。 #### 🚀 计划中 (TO DO) - **安全连接**:推进 iframe 框架下的 HTTPS 协议适配。 - **多端优化**:持续改进移动端 UI 的操作顺滑度。 &bundleURL; BUNDLE_V="&bundleversion;" PLUGIN_V="&version;" NAME="&name;" BRANCH="&branch;" AUTHOR="&author;" > "$SETTINGS_FILE" fi } # === 迁移旧 beta 标记文件 === if [ -f "$INSTALL_PATH/beta" ]; then echo "检测到旧版 beta 标记文件,正在迁移..." set_setting "filebrowser_BRANCH" "beta" rm -f "$INSTALL_PATH/beta" fi # === 迁移旧 latest 标记文件 === if [ -f "$INSTALL_PATH/latest" ]; then echo "检测到旧版 latest 标记文件,正在迁移..." OLD_LATEST=$(cat "$INSTALL_PATH/latest") set_setting "filebrowser_LATEST" "$OLD_LATEST" rm -f "$INSTALL_PATH/latest" fi # 1. 寻找本地缓存 LOCAL_BINARY=$(ls -t $INSTALL_PATH/${NAME}-v* 2>/dev/null | head -n 1) if [ -f "$LOCAL_BINARY" ]; then echo "检测到本地主程序缓存: $(basename $LOCAL_BINARY),跳过联网检测。" cp "$LOCAL_BINARY" /usr/sbin/filebrowser_quantumorig.new mv /usr/sbin/filebrowser_quantumorig.new /usr/sbin/filebrowser_quantumorig current_version=$(basename "$LOCAL_BINARY" | cut -d'-' -f3-) INSTALLED_BINARY="$LOCAL_BINARY" else echo "本地无缓存,正在联网查询最新版本..." TAG_LIST=$(curl -s --connect-timeout 5 "https://api.github.com/repos/$GITHUB_REPO/tags" | grep '"name":' | head -n 10) if [ -z "$TAG_LIST" ]; then echo "警告:无法连接 GitHub API,将使用保底版本号..." current_version="v1.1.0-stable" else # 从 settings.cfg 读取分支 CURRENT_BRANCH=$(get_setting "filebrowser_BRANCH" "stable") if [ "$CURRENT_BRANCH" == "beta" ]; then current_version=$(echo "$TAG_LIST" | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+-beta' | head -n 1) echo "Beta mode detected. Target version: $current_version" [ -z "$current_version" ] && current_version="v1.1.6-beta" else current_version=$(echo "$TAG_LIST" | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+-stable' | head -n 1) echo "检测到最新稳定版号为: $current_version" [ -z "$current_version" ] && current_version="v1.1.0-stable" fi fi INSTALLED_BINARY="$INSTALL_PATH/${NAME}-$current_version" filebrowser_quantumurl="https://github.com/$GITHUB_REPO/releases/download/$current_version/linux-amd64-filebrowser" echo "开始下载并安装: $current_version ..." curl --connect-timeout 15 --retry 3 -L -o "$INSTALLED_BINARY" --create-dirs "$filebrowser_quantumurl" if [ -f "$INSTALLED_BINARY" ]; then cp "$INSTALLED_BINARY" /usr/sbin/filebrowser_quantumorig.new mv /usr/sbin/filebrowser_quantumorig.new /usr/sbin/filebrowser_quantumorig else echo "错误:下载失败且本地无缓存!" exit 1 fi fi # 核心校验 if [ ! -f /usr/sbin/filebrowser_quantumorig ]; then echo "安装失败:无法获取二进制文件" removepkg ${NAME}-${BUNDLE_V}-x86_64 >/dev/null exit 1 fi # 后勤处理 chown root:root /usr/sbin/filebrowser_quantumorig chmod 755 /usr/sbin/filebrowser_quantumorig chown -R root:root /usr/local/emhttp/plugins/${NAME} chmod +x /usr/local/emhttp/plugins/${NAME}/*.sh chmod 644 /usr/local/emhttp/plugins/${NAME}/*.php # 下载默认 config.yaml if [ ! -f "/boot/config/plugins/${NAME}/config.yaml" ]; then echo "正在下载默认配置..." if ! curl -fsSL --connect-timeout 10 --retry 3 -o "/boot/config/plugins/${NAME}/config.yaml" "https://raw.githubusercontent.com/insomnia417/Unraid-FileBrowser_Quantum-Plugins/${BRANCH}/config.yaml"; then echo "下载失败,正在生成本地默认配置..." cat < "/boot/config/plugins/${NAME}/config.yaml" server: port: 8081 baseURL: "/" internalUrl: "" database: "/boot/config/plugins/filebrowser_quantum/database.db" logging: - levels: "info|debug|warning|error" output: "/var/log/filebrowser_quantum.log" sources: - path: "/" name: "Root Dir" EOF fi fi # 初始化 settings.cfg if [ ! -f "$SETTINGS_FILE" ]; then echo "首次安装,初始化默认配置。" set_setting "filebrowser_ENABLED" "true" set_setting "filebrowser_BRANCH" "stable" fi # 智能清理 echo "正在清理旧的安装文件..." find "$INSTALL_PATH" -name "${NAME}-*.txz" ! -name "${NAME}-${BUNDLE_V}-x86_64.txz" -delete if [ -n "$INSTALLED_BINARY" ]; then find "$INSTALL_PATH" -name "${NAME}-v*" ! -name "$(basename "$INSTALLED_BINARY")" -delete fi # 根据配置状态启动服务 ENABLE_STATE=$(get_setting "filebrowser_ENABLED" "false") if [ "$ENABLE_STATE" == "true" ]; then echo "配置状态为 [启用],正在启动 FileBrowser 守护进程..." "$DAEMON_SCRIPT" "START_ONLY" echo "● Filebrowser_Quantum 已在后台启动" else echo "配置状态为 [禁用],跳过自动启动。" fi # 刷新远程版本号缓存 "$DAEMON_SCRIPT" "VERSION" echo "" echo "${NAME} ${PLUGIN_V} 安装成功!" echo "-----------------------------------------------------------" echo "" ]]> if ! [ -f /bin/fusermount ]; then if [ -f /usr/bin/fusermount3 ]; then ln -s /usr/bin/fusermount3 /bin/fusermount fi; fi; #!/bin/bash config=/boot/config/plugins/filebrowser_quantum/config.yaml filebrowser_quantumorig -c $config "$@"; config.yaml BUNDLE_V="&bundleversion;" PLUGIN_V="&version;" NAME="&name;" /dev/null 2>&1 fi echo "清理残留进程..." pkill -f "filebrowser_quantumorig" >/dev/null 2>&1 pkill -f "log_stream.php" >/dev/null 2>&1 pkill -f "tail -n 50 -f" >/dev/null 2>&1 rm -f /usr/sbin/filebrowser_quantumorig rm -f /usr/sbin/filebrowser_quantum removepkg ${NAME}-${BUNDLE_V}-x86_64 >/dev/null 2>&1 rm -f /var/lib/pkgtools/packages/${NAME}-* rm -rf /usr/local/emhttp/plugins/${NAME} echo "正在清理 U 盘上的插件功能包..." rm -f /boot/config/plugins/${NAME}/install/${NAME}-${BUNDLE_V}-x86_64.txz echo "" echo "-----------------------------------------------------------" echo "${NAME} ${PLUGIN_V} 卸载成功!" echo "${NAME}二进制主程序文件仍保留在U盘" echo "-----------------------------------------------------------" echo "" ]]>