workspace download
workspace download 从 Workflow Server 获取指定 target 的 workflow 文件,并写入本地目录。写入前会清空目标目录。
命令格式
参数
| 参数 | 说明 |
|---|---|
<workflow> | 远程 workflow 名称。 |
--target <target> | 下载目标。默认 draft。 |
--path <dir> | 本地目标目录。未传时写入 workspace/workflow/<workflow>。 |
Target
| 值 | 说明 |
|---|---|
draft | 默认值。下载远程 draft。 |
latest | 下载 latest 版本。 |
| 具体版本号 | 下载指定版本。preparing 版本不可下载;offline 版本仍保留源码备份,可用于下载或重新上线前排查。 |
API
| 步骤 | Endpoint |
|---|---|
| 获取文件 | GET /api/workflows/{workflow}/files?target=<target> |
写入规则
| 规则 | 说明 |
|---|---|
| 清空目标目录 | 写入前执行递归清空。 |
| 创建目录 | 根据 server 返回的相对路径创建目录。 |
| 写入内容 | 将 server 返回的 content 写入目标文件。 |
安全校验
| 校验 | 说明 |
|---|---|
| 禁止绝对路径 | server 返回 /... 或 Windows 盘符路径会被拒绝。 |
| 禁止路径穿越 | 空路径、.、.. 或包含空段的路径会被拒绝。 |
| 遵守排除规则 | node_modules、dist、.git、.cache、.env、.env.*、*.tmp 不会写入。 |
| 允许示例 env | .env.example 可以写入。 |
输出
| 情况 | 输出 |
|---|---|
| 下载成功 | 先输出 server files API JSON,再写入文件。 |
| 文件路径非法 | 输出错误信息,退出码为 1。 |
| 未登录 | 输出错误信息,退出码为 1。 |
示例
注意事项
| 场景 | 建议 |
|---|---|
| 目标目录有本地改动 | 先备份或选择新的 --path。 |
| 只想查看远程版本 | 使用 versions。 |