automation_file 简体中文文档
简中手册按典型读者旅程拆分为章节:安装 → 执行 JSON 动作 → 操作本地文件 → 串接远端存储 → 对外开服务器 → 规模化自动化。可使用左侧目录,或直接 跳到下方任一章节。
第 1 章 — 入门
安装 automation_file、执行第一份 JSON 动作列表,并理解注册器与
执行器之间的分工。
第 2 章 — CLI
使用 python -m automation_file argparse 派发器驱动框架——子命令、
旧版标志与 JSON 文件执行。
CLI
第 3 章 — 架构
分层架构、设计模式(Facade、Registry、Command、Strategy、Template Method、Singleton、Builder),以及执行器与注册器的交互方式。
第 4 章 — 本地操作
由 local/ 策略模块提供的文件、目录、ZIP、tar 与压缩档操作;
safe_join 路径穿越防护;感知 OS 索引的 fast_find;流式
file_checksum 与 find_duplicates;sync_dir rsync 风格镜像;
目录差异比对与文本 patch;JSON / YAML / CSV / JSONL / Parquet 编辑;
MIME 检测;模板渲染;回收站发送 / 还原;文件版本控制;条件式执行;
变量替换;带超时的 shell 子进程;以及 AES-256-GCM 文件加密。
第 5 章 — HTTP 传输
经 SSRF 校验的对外 HTTP 下载,并通过 http_download 设下大小、
超时、重试与 expected_sha256 上限。可通过 Range: 续传到
<target>.part,并提供实时进度快照。
HTTP 传输
第 6 章 — 云端与 SFTP 后端
Google Drive、S3、Azure Blob、Dropbox、OneDrive、Box、SFTP、FTP / FTPS、
WebDAV、SMB 与 fsspec——皆由 build_default_registry 自动注册。
copy_between 可按 URI 前缀在不同后端间搬运数据。
云端与 SFTP 后端
第 7 章 — 动作服务器
默认仅绑定 loopback 的 TCP 与 HTTP 服务器,接受 JSON 动作列表,可
选择启用共享密钥认证、ActionACL 白名单、GET /healthz /
GET /readyz 健康检查、GET /openapi.json、GET /progress
WebSocket,以及带类型的 HTTPActionClient SDK。
动作服务器
第 8 章 — MCP 服务器
MCPServer 通过 stdio 上的换行分隔 JSON-RPC 2.0,把注册器桥接到
任意 Model Context Protocol 主机(Claude Desktop、Claude Code、MCP
CLI)。
第 9 章 — 图形界面
PySide6 桌面控制界面——分页布局、日志面板,以及 ActionWorker 线程
池模型。
图形界面
第 10 章 — 可靠性
带上限的指数退避 retry_on_transient、Quota 大小与时间预算、
CircuitBreaker、RateLimiter、FileLock / SQLiteLock、
持久化的 ActionQueue、SQLite AuditLog、用于周期清单比对的
IntegrityMonitor,以及带类型的 FileAutomationException 层级。
可靠性
第 11 章 — 触发器与调度
文件监控触发器(FA_watch_*)会在文件系统事件发生时运行动作列表;
cron 风格调度器(FA_schedule_*)按调度周期性运行动作列表,并具备
重叠保护。
第 12 章 — 通知
Slack、Email(SMTP)、Discord、Telegram、Microsoft Teams、PagerDuty
与通用 Webhook 接收端,由 NotificationManager 组合,具备每接收端
错误隔离与滑动窗口去重。
通知
第 13 章 — 配置与机密信息
在 automation_file.toml 中声明接收端与默认值;${env:…} /
${file:…} 引用会通过链式 EnvSecretProvider /
FileSecretProvider 解析;ConfigWatcher 会轮询并热重载文件,
无需重启。
配置与机密信息
第 14 章 — DAG 动作执行器
以 DAG 形式运行动作列表,可声明依赖、进行拓扑式并行展开、按分支 跳过失败节点。
DAG 动作执行器
第 15 章 — 插件
第三方包可通过 [project.entry-points."automation_file.actions"]
注册自家 FA_* 动作;PackageLoader 会导入一个 Python 包,
并把其顶层成员以 <package>_<member> 名称注册进注册器。