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_checksumfind_duplicatessync_dir rsync 风格镜像; 目录差异比对与文本 patch;JSON / YAML / CSV / JSONL / Parquet 编辑; MIME 检测;模板渲染;回收站发送 / 还原;文件版本控制;条件式执行; 变量替换;带超时的 shell 子进程;以及 AES-256-GCM 文件加密。

第 5 章 — HTTP 传输

经 SSRF 校验的对外 HTTP 下载,并通过 http_download 设下大小、 超时、重试与 expected_sha256 上限。可通过 Range: 续传到 <target>.part,并提供实时进度快照。

第 6 章 — 云端与 SFTP 后端

Google Drive、S3、Azure Blob、Dropbox、OneDrive、Box、SFTP、FTP / FTPS、 WebDAV、SMB 与 fsspec——皆由 build_default_registry 自动注册。 copy_between 可按 URI 前缀在不同后端间搬运数据。

第 7 章 — 动作服务器

默认仅绑定 loopback 的 TCP 与 HTTP 服务器,接受 JSON 动作列表,可 选择启用共享密钥认证、ActionACL 白名单、GET /healthz / GET /readyz 健康检查、GET /openapi.jsonGET /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_transientQuota 大小与时间预算、 CircuitBreakerRateLimiterFileLock / 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> 名称注册进注册器。