飞牛批量重命名助手 —— NAS 文件批量改名利器
一个轻量、安全、开箱即用的飞牛 NAS 文件重命名工具,支持单文件与批量更名,内置预览与冲突检测,完美适配飞牛系统主题。
一、项目简介
飞牛批量重命名助手是一款专为飞牛 NAS 系统打造的第三方应用,帮助用户在 Web 管理界面中高效完成文件的重命名工作。无论是单文件的快速改名,还是成百上千个文件的批量处理,都能在几秒内完成。
典型场景:
- 影视剧集文件名批量添加季集编号
- 照片按「日期_序号」格式统一重命名
- 清除下载文件中的广告前缀或乱码字符
- 正则表达式批量替换复杂命名规则
二、功能特性
2.1 文件浏览与管理
- 目录树浏览:直观的面包屑导航,支持任意层级目录穿梭
- 多存储池切换:如有多个存储池/卷,可一键切换根路径
- 全局搜索:支持文件名模糊搜索与正则表达式搜索,递归扫描所有允许路径
- 排序:按名称、修改时间、大小、类型排序,升序/降序自由切换
- 文件图标:自动识别 7 大类文件类型(图片/视频/文档/压缩包/代码/音频/文件夹),以不同颜色图标区分
2.2 单文件重命名
- 点击任意文件后的「重命名」按钮
- 文件名和扩展名分开编辑,避免误操作
- 确认后即时生效
2.3 批量重命名(七种模式)
| 模式 |
说明 |
示例 |
| 查找替换 |
替换文件名中指定文本 |
photo_copy → photo |
| 添加前缀 |
在文件名前添加固定文本 |
IMG_0001.jpg → 旅行_IMG_0001.jpg |
| 添加后缀 |
在扩展名前添加文本 |
report → report_v2.pdf |
| 序号重命名 |
按「格式 + 序号」统一编号 |
文件_01.txt, 文件_02.txt... |
| 删除字符 |
删除文件名中的指定字符 |
【广告】电影.mp4 → 电影.mp4 |
| 大小写转换 |
全小写 / 全大写 / 首字母大写 |
Hello World.txt → hello world.txt |
| 正则替换 |
完整正则表达式支持,含捕获组引用 |
2024年01月15日 → 2024-01-15 |
2.4 预览与安全
- 实时预览:批量操作时即时预览重命名结果,无需等待服务器
- 冲突检测:自动检测目标文件名是否已存在,冲突项高亮标注
- 操作日志:完整记录每次重命名操作,支持追溯与排查
- 路径安全:严格控制访问范围在 NAS 允许的存储路径内,防止越权访问
2.5 主题适配
- 完美适配飞牛系统的亮色 / 暗色 / 跟随系统三种主题模式
- 自动响应系统主题切换,无需手动设置
三、使用方法
3.1 基本使用
- 在飞牛应用中心安装「文件重命名工具」
- 打开应用,进入文件浏览界面
- 通过目录树或搜索定位到目标文件夹
- 勾选需要重命名的文件(支持全选、反选)
- 底部工具栏选择批量操作模式,填写参数
- 预览确认后点击「执行重命名」即可
3.2 单文件重命名
直接点击文件右侧的「重命名」按钮,在弹窗中修改文件名和扩展名,确认保存。
3.3 批量序号重命名
- 勾选目标文件,点击底部「序号重命名」
- 命名格式中输入
照片_{序号}({序号} 为必填占位符)
- 设置起始序号(如 1)和序号位数(如 3 → 001)
- 预览无误后执行
3.4 正则替换
- 点击「正则替换」
- 输入正则表达式,如:
(\d{4})年(\d{2})月(\d{2})日
- 替换文本中使用
$1-$2-$3 引用捕获组
- 也可点击预设按钮快速填充常用正则
3.5 修改服务端口
在飞牛应用设置中可自定义服务端口号,修改后自动重启服务。
四、技术架构
4.1 整体架构
**──────────────────────────────────────────**
** 飞牛 NAS 系统 **
** **────────────────────────────────────** **
** ** Web 管理界面 ** **
** ** **────────────────────────────** ** **
** ** ** proxy.cgi (CGI 代理) ** ** **
** ** ** 转发 HTTP 请求到后端 ** ** **
** ** **──────────**─────────────────** ** **
** **──────────────**─────────────────────** **
** ** **
** **──────────────▼─────────────────────** **
** ** Flask 后端服务 (server.py) ** **
** ** - 目录遍历 API ** **
** ** - 文件搜索 API ** **
** ** - 单文件重命名 API ** **
** ** - 批量重命名 API ** **
** ** - 预览/冲突检测 API ** **
** ** - 操作日志 API ** **
** **──────────────**─────────────────────** **
** ** **
** **──────────────▼─────────────────────** **
** ** 静态前端 (HTML + JS + CSS) ** **
** ** - 纯原生 JavaScript,零依赖框架 ** **
** ** - CSS 变量实现主题切换 ** **
** ** - 客户端实时预览引擎 ** **
** **────────────────────────────────────** **
** ** **
** **──────────────▼─────────────────────** **
** ** NAS 文件系统 ** **
** **────────────────────────────────────** **
**──────────────────────────────────────────**
4.2 技术栈
| 层级 |
技术选型 |
说明 |
| 后端 |
Python 3 + Flask |
轻量 Web 框架,依赖仅 Flask 一个包 |
| 前端 |
原生 HTML/CSS/JS |
零框架、零构建工具,开箱即用 |
| 代理 |
Bash CGI 脚本 |
转发飞牛 Web 请求到 Flask 后端 |
| 进程管理 |
Shell 主控脚本 |
start/stop/status 生命周期管理 |
| 配置 |
JSON + 环境变量 |
端口、允许路径通过环境变量注入 |
4.3 API 接口一览
| 接口 |
方法 |
说明 |
/api/root |
GET |
获取允许访问的根路径 |
/api/list |
GET |
列出目录内容,含文件元信息 |
/api/search |
GET |
全局递归搜索文件/目录 |
/api/rename |
POST |
单文件重命名 |
/api/batch_rename |
POST |
批量重命名 |
/api/preview_batch |
POST |
批量重命名预览(不执行) |
/api/log |
GET |
获取操作日志 |
/api/theme |
GET |
获取当前主题 |
4.4 安全设计
- 路径白名单:通过
TRIM_ALLOWED_FOLDERS 环境变量限制可访问目录,所有路径操作前均做 realpath 解析与范围校验
- 冲突检测:重命名前检查目标路径是否已存在同名文件,避免数据覆盖
- 操作审计:所有重命名操作记录在服务端日志中(内存保留最近 200 条)
- root 运行隔离:以 root 权限运行以保证 NAS 文件操作权限,但路径受严格约束
五、安装说明
5.1 前置要求
- 飞牛 NAS 系统
- Python 3 环境(安装脚本自动检测)
5.2 安装步骤
- 下载应用包(
.fpk 文件)
- 进入飞牛系统「应用中心」→「手动安装」
- 上传并安装应用包
- 安装完成后,在应用列表中点击应用设置,设置可读写的目录
- 应用中心中打开或桌面打开使用
默认服务端口为 18899,如需修改可在应用设置中变更。
六、改进
欢迎通过以下方式参与:
- 在本应用帖子下分享使用心得
- 提出一些稀奇古怪的要求!ps-不一定改!
七、常见问题
Q:批量重命名后发现搞错了,能撤销吗?
目前暂不支持一键撤销,建议在执行前仔细预览确认。未来版本计划加入撤销功能。
Q:为什么有些文件无法重命名?
可能是以下原因:①目标文件名已存在(触发冲突保护);②文件不在允许的存储路径内;③文件正被其他程序占用。
Q:服务端口冲突怎么办?
在飞牛应用设置中修改端口号,应用会自动重启并绑定新端口。
八、截图预览
应用界面包含:文件列表浏览、面包屑导航、全局搜索、批量操作工具栏、七种重命名模式弹窗、实时预览面板、操作日志记录。完美支持亮色/暗色主题,与飞牛系统风格统一。










九、安装包
附件:file-renamer.fpk.zip