[工具推荐] seaf-cli-macos — macOS 命令行 Seafile 客户端

[工具推荐] seaf-cli-macos — macOS 命令行 Seafile 客户端

简介

seaf-cli-macos 是一个用 Go 语言编写的 macOS 命令行 Seafile 客户端,基于官方 seaf-daemon 块同步协议,不依赖 Python,开箱即用。

为什么做这个工具?

官方 Seafile 桌面客户端功能完善,但有些场景需要更灵活的命令行工具:

  1. 服务器批量管理 — 在多台 Mac 上快速部署同步

  2. 自动化脚本 — 定时同步、自动备份

  3. 无 GUI 环境 — SSH 远程服务器、CI/CD 流程

  4. 轻量需求 — 只需要同步和上传,不想装完整客户端

核心特性

  • 块同步协议 — 使用 seaf-daemon 的原生同步引擎,速度快,不走 REST API

  • 断点续传 — 上传中断后再次运行,已传文件自动跳过

  • 智能上传策略 — 根据文件数量和大小自动选择 zip 压缩或逐文件上传

  • WAF 兼容 — 遇到限流自动暂停重试,指数退避

  • 钥匙串集成 — token 自动存入 macOS Keychain

  • 终端美化 — 使用 lipgloss 库,中文对齐,Emoji 图标

快速安装


# Apple Silicon

curl -L https://github.com/cobola/seaf-cli-macos/releases/latest/download/seaf-cli-macos-arm64.tar.gz | tar -xz

sudo cp seaf-cli-macos-arm64/bin/* /usr/local/bin/

# Intel Mac

curl -L https://github.com/cobola/seaf-cli-macos/releases/latest/download/seaf-cli-macos-x86_64.tar.gz | tar -xz

sudo cp seaf-cli-macos-x86_64/bin/* /usr/local/bin/

使用示例


# 登录

seaf-cli login

# 输入服务器地址、邮箱、密码

# 查看资料库

seaf-cli list

# 浏览文件

seaf-cli ls 私人资料库/文档

# 同步到本地

seaf-cli sync 私人资料库 ~/SeafileData/私人资料库

# 上传文件(自动排除 .DS_Store)

seaf-cli upload ~/Documents/my-project 私人资料库/my-project

# 查看同步状态

seaf-cli status

命令一览

| 命令 | 说明 |

|------|------|

| seaf-cli login | 登录 |

| seaf-cli login --web | Token 登录(适合 SSO) |

| seaf-cli list | 列出所有资料库 |

| seaf-cli ls <库> [路径] | 浏览文件 |

| seaf-cli sync <库> <目录> | 同步到本地 |

| seaf-cli upload <本地> <远程> | 上传文件 |

| seaf-cli status | 查看同步状态 |

| seaf-cli start/stop | 启动/停止守护进程 |

技术实现

  • 语言: Go + C (seaf-daemon)

  • 同步: seaf-daemon 块同步协议(TCP 长连接)

  • 上传: REST API + 智能限流

  • 登录: 支持密码/Token/JSON 导入

  • 安全: 钥匙串存储、配置文件 0600 权限

与官方客户端对比

| 特性 | 官方客户端 | seaf-cli-macos |

|------|-----------|----------------|

| GUI | :white_check_mark: 完整 GUI | :cross_mark: 纯命令行 |

| 自动同步 | :white_check_mark: | :white_check_mark: |

| 文件上传 | :white_check_mark: | :white_check_mark: |

| 脚本集成 | :cross_mark: | :white_check_mark: |

| 体积 | ~200MB | ~10MB |

| 依赖 | Qt + Python | 无 |

已知限制

  1. 上传大文件目录可能触发 WAF 限流(使用 -s zip 策略可缓解)

  2. 不支持文件锁定、评论等高级功能

  3. 同步功能需要 seaf-daemon 守护进程运行

反馈

欢迎在 GitHub Issues 提交问题和建议。


工具开源,GPLv3 协议,基于官方 Seafile 源码编译。

2 个赞