高性能 · 微内核架构 · 多网盘统一接口 · 跨盘同步传输
High-Performance · Microkernel Architecture · Universal Cloud Storage CLI · Cross-Cloud Sync
| 特性 / Feature | cloud-cli | rclone | 单网盘 CLI / Single-Provider CLI |
|---|---|---|---|
| 通用接口 + 专属能力 | ✅ 分层架构,通用底座+扩展接口 | ✅ 功能丰富但配置复杂 | ❌ 功能绑定特定网盘 |
| 夸克网盘支持 | ✅ 完整支持(秒传、分片、断点) | ❌ 不支持 | ✅ 仅夸克 |
| 断点续传 | ✅ 崩溃自动恢复 | ✅ | ❌ 通常不支持 |
| 秒传检测 | ✅ 自动 SHA1 预检 | ❌ | ❌ |
| 跨盘对拷 | ✅ 夸克 ↔ 百度 ↔ 本地 | ✅ | ❌ |
| 目录同步 | ✅ --dry-run + --delete |
✅ 功能多但学习成本高 | ❌ |
| 配置复杂度 | 🟢 极简,一条命令登录 | 🔴 需配置多个 remote | 🟢 简单 |
| 多账户管理 | ✅ YAML 统一管理 | ✅ 配置文件中管理 | ❌ 通常单账户 |
| CI/CD 发布 | ✅ Goreleaser 自动构建多平台 | ✅ | ❌ |
- 🔌 插件化驱动架构 — 每个网盘只需实现接口即可接入,未来可扩展百度、115、阿里、OneDrive 等。
- 🧠 智能能力检测 — CLI 自动检测当前网盘支持的功能,不支持的功能优雅降级,不报错。
- 🔄 跨盘同步引擎 — 基于流式 I/O 的同步引擎,本地与云端、云端与云端之间无缝传输。
- ⚡ 生产级上传 — 并发分片 + 断点续传 + 秒传检测 + SSRF 防护,专为大文件优化。
- 📋 极简配置 — 扫码登录 / Cookie 导入,一条命令完成,无需复杂配置文件。
前往 Releases 下载对应平台的二进制文件:
# Linux amd64
curl -LO https://github.com/Ab-code520/cloud-cli/releases/download/v1.4.0/cloud-cli_1.4.0_linux_amd64.tar.gz
tar -xzf cloud-cli_1.4.0_linux_amd64.tar.gz
sudo mv cloud-cli /usr/local/bin/git clone https://github.com/Ab-code520/cloud-cli.git
cd cloud-cli
go build -o cloud-cli .
sudo mv cloud-cli /usr/local/bin/go install github.com/Ab-code520/cloud-cli@latest# 扫码登录夸克(推荐)/ QR Scan Login (Recommended)
cloud-cli login quark
# 或使用 Cookie 登录 / Login with Cookie
cloud-cli login quark --cookie "your_cookie_string_here"# 列出根目录 / List root directory
cloud-cli ls
# 列出指定目录 / List specific directory
cloud-cli ls folder_id
# 递归列出 / List recursively (future)# 上传单个文件(自动秒传检测 + 断点续传)
cloud-cli upload ./movie.mp4 /videos/
# 使用指定策略 / With upload policy
cloud-cli upload ./movie.mp4 /videos/ --policy overwrite # 覆盖已有文件
cloud-cli upload ./movie.mp4 /videos/ --policy skip # 跳过已存在(默认)
cloud-cli upload ./movie.mp4 /videos/ --policy rsync # 仅在修改后上传# 下载文件 / Download file
cloud-cli download /videos/movie.mp4 ./local_movie.mp4
# 断点续传下载(中断后重新运行即可恢复)/ Resume on interrupt
cloud-cli download /videos/big_movie.mp4 ./big.mp4# 本地 → 夸克(仅同步新增/修改的文件)
cloud-cli sync ./photos quark:/backup/photos
# 预览同步内容(不会实际执行)/ Dry Run
cloud-cli sync ./data quark:/backup --dry-run
# 同步并删除目标端多余文件 / Sync + Delete Extra
cloud-cli sync ./important quark:/important --delete# 文件操作 / File Operations
cloud-cli copy <file_id> <dest_id> # 复制文件
cloud-cli move <file_id> <dest_id> # 移动文件
cloud-cli rename <file_id> "新名称" # 重命名
cloud-cli info <file_id> # 查看文件详情
cloud-cli delete <file_id> # 删除文件
cloud-cli mkdir <path> # 创建目录
# 高级功能 / Advanced Features
cloud-cli search "关键词" # 搜索文件
cloud-cli share create <id1> <id2> # 创建分享
cloud-cli share list # 查看分享列表
cloud-cli share delete <share_id> # 删除分享
cloud-cli quota # 查看空间使用情况
cloud-cli recycle list # 查看回收站
cloud-cli recycle restore <fid> # 恢复文件
cloud-cli recycle delete <fid> # 彻底删除
# 账户管理 / Account Management
cloud-cli user # 查看当前账户信息┌─────────────────────────────────────────────────────────────┐
│ CLI Commands │
│ login ls upload download sync copy move search ... │
├─────────────────────────────────────────────────────────────┤
│ 通用引擎 / Core Engines │
│ ┌─────────────┐ ┌──────────────┐ ┌────────────────────┐ │
│ │ Sync Engine │ │ Transfer │ │ Config Manager │ │
│ │ (同步引擎) │ │ (传输引擎) │ │ (配置管理器) │ │
│ └─────────────┘ └──────────────┘ └────────────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ 通用底座接口 / Base Storage Interface │
│ Name() Init() List() Open() Put() Delete() ... │
├─────────────────────────────────────────────────────────────┤
│ 扩展能力接口 / Extension Interfaces │
│ ┌──────────┐ ┌──────────┐ ┌───────────┐ ┌───────────────┐ │
│ │ Sharable │ │Searchable│ │QuotaProv. │ │ RecycleBin │ │
│ │ (分享) │ │ (搜索) │ │ (空间) │ │ (回收站) │ │
│ └──────────┘ └──────────┘ └───────────┘ └───────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ 驱动实现 / Driver Backends │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
│ │ Quark Drive │ │ Local FS │ │ Baidu / 115 / Ali... │ │
│ │ (夸克网盘) │ │ (本地文件系统) │ │ (未来扩展) │ │
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
cloud-cli/
├── core/ # 微内核核心
│ ├── fs.go # 基础接口 + 扩展接口定义
│ ├── config.go # YAML 多账户配置管理
│ ├── sync.go # 目录同步引擎
│ ├── transfer.go # 跨盘流式传输引擎
│ └── registry.go # 驱动注册表
├── backends/ # 网盘驱动
│ ├── quark/ # 夸克网盘(完整实现)
│ └── local/ # 本地文件系统
├── cmd/ # CLI 命令(Cobra)
├── utils/ # 工具库
│ ├── pool.go # 并发工作池(带熔断)
│ └── hash.go # 流式 SHA1 计算
├── .github/workflows/ # CI/CD
│ └── release.yml # Goreleaser 自动构建
└── main.go # 入口(导入所有驱动)
- ✅
login— 扫码登录 / Cookie 登录 - ✅
ls— 列出目录 - ✅
upload— 上传文件(分片并发 + 断点续传 + 秒传) - ✅
download— 下载文件(支持断点续传) - ✅
delete— 删除文件/文件夹 - ✅
mkdir— 创建目录
- ✅
copy— 复制文件 - ✅
move— 移动文件 - ✅
rename— 重命名 - ✅
info— 查看文件详情(大小、类型、Hash、时间)
- ✅
search— 网盘内文件搜索 - ✅
share— 分享管理(创建/列表/删除) - ✅
quota— 空间使用情况(含可视化进度条) - ✅
recycle— 回收站管理(列表/恢复/彻底删除)
- ✅
sync— 目录同步(支持--dry-run和--delete) - ✅ 本地 ↔ 云端同步
- ✅ 跨盘流式传输引擎(预留)
- ✅ YAML 多账户配置
- ✅ Goreleaser 跨平台构建(Linux/macOS/Windows × amd64/arm64)
- ✅ GitHub Actions CI/CD
- ✅ SSRF 安全防护
# 跳过已存在文件(默认)/ Skip existing
cloud-cli upload ./file.txt /dest/ --policy skip
# 覆盖已存在文件 / Overwrite existing
cloud-cli upload ./file.txt /dest/ --policy overwrite
# 仅在文件有变化时上传 / Upload only if modified
cloud-cli upload ./file.txt /dest/ --policy rsync所有列表和查询命令都支持 --output json (或 -o json) 参数,方便与其他脚本或工具集成:
# 以 JSON 格式列出文件 / List files as JSON
cloud-cli ls -o json
# 输出示例:
# [
# {
# "id": "file_id_1",
# "name": "document.pdf",
# "size": 1048576,
# "is_dir": false,
# "mod_time": "2026-01-01T12:00:00Z",
# "path": "/document.pdf"
# }
# ]
# 结合 jq 使用 / Pipe to jq
cloud-cli ls -o json | jq '.[].name'
# 查看空间使用情况 / Check quota as JSON
cloud-cli quota -o json在执行实际同步之前,可以先预览会做什么操作:
cloud-cli sync ./photos quark:/backup/photos --dry-run输出示例:
🔄 Syncing ./photos -> quark:/backup/photos ...
👀 This is a dry run, no files will be modified.
⬆️ upload IMG_001.jpg [DRY RUN]
⬆️ upload IMG_002.jpg [DRY RUN]
🔄 update edited_photo.png [DRY RUN]
✅ Sync completed.
配置文件位于 ~/.config/cloud-cli/config.yaml:
default: quark-default
accounts:
quark-default:
type: quark
cookie:
cookie: "your_cookie_here"
settings:
speed_limit: "0"
retries: 3
timeout: 60| 平台 / OS | amd64 | arm64 |
|---|---|---|
| Linux | ✅ | ✅ |
| macOS | ✅ | ✅ |
| Windows | ✅ | ✅ |
- 创建驱动目录:
backends/<provider>/driver.go+api.go - 实现
core.Storage接口(至少实现 CRUD 方法) - 可选:实现扩展接口(
Sharable、Searchable等) - 在
init()中注册:core.Register("provider", NewDriver) - 在
main.go中添加空白导入:_ "github.com/Ab-code520/cloud-cli/backends/<provider>"
就是这么简单! 驱动接入后即可享受:同步引擎、传输引擎、CLI 命令等全部基础设施。
本项目采用 MIT 许可证。详见 LICENSE 文件。
This project is licensed under the MIT License. See the LICENSE file for details.
欢迎提交 Issue 和 Pull Request!
Issues and Pull Requests are welcome!
Made with ❤️ by Abu