跨平台(桌面)多云存储管理器 —— 用统一界面管理阿里云 OSS、腾讯云 COS、华为云 OBS、AWS S3 等多家云存储。
底层每家云都是从零手写的独立可发布 Rust SDK,不依赖任何聚合库。
- 语言 / GUI:Rust + Tauri 2.0(桌面三端 macOS / Windows / Linux)
- 架构:monorepo,三层解耦,依赖严格单向
cloud-core → 各厂商 SDK → providers 适配层 → app - 凭证:系统钥匙串(keyring)
- 异步:tokio
nebula/
├─ crates/
│ ├─ cloud-core/ 公共底座(HTTP / 签名积木 / 错误 / 重试 / 分页)
│ ├─ aliyun-oss/ 阿里云对象存储 SDK(对象/桶/列举/分片/预签名)
│ ├─ huawei-obs/ 华为云对象存储 SDK(对象/桶/列举/分片/预签名)
│ ├─ nebula-provider/ App 统一抽象 trait(StorageProvider)
│ ├─ providers/provider-aliyun 适配层(aliyun-oss → StorageProvider)
│ ├─ providers/provider-huawei 适配层(huawei-obs → StorageProvider)
│ └─ app-core/ App 业务逻辑(账号/传输/设置,框架无关,可 cargo test)
└─ app/ Tauri 桌面应用(src-tauri 后端 + src 前端)
已实现阿里云 OSS 与华为云 OBS 两家,均全链路真账号验证过。新增厂商 = 按 SDK 开发手册 写一个
<vendor>SDK + 一个 provider 适配层, 在app-core注册即可,App 界面无需改动。完整规划见 PLAN.md。
账号(SQLite + 系统钥匙串)· 浏览(目录逐层 / 列表·网格视图 / 排序 / 过滤 / 详情 / 图片预览) · 上传(拖拽文件·文件夹 / 多选 / 自动分片 / 进度)· 下载(流式 / 批量)· 重命名 / 复制·移动(级联选择器) · 分享(预签名链接)· 新建文件夹 · 删除(单个 / 批量)· 传输面板(并发 / 重试)· 设置 · 明暗主题 · 快捷键 · 右键菜单。
App 的运行与打包见 app/README.md。
- 每家 SDK 保持厂商原名(
aliyun-oss而非nebula-aliyun),便于被搜索复用。 - 厂商 SDK 不得依赖 App 层任何 crate,以保持独立可发布。
- 按功能逐个开发:每个功能验证通过后独立提交,确认后再进入下一个。
- SDK 开发手册 — 从零手写一个厂商 SDK 的标准流程、增量顺序、验收标准
- 厂商规格卡
docs/sdk/<crate>.md— 每家特有的签名/endpoint/进度(见 aliyun-oss、huawei-obs,新建用 _template)