一个 Rust 实现的 S3 媒体存储网关,支持分块去重、压缩和加密,并将数据存储至配置的存储目标
项目仍在开发阶段,不建议用在生产环境 ...
- 存储:FastCDC + BLAKE3 去重,zstd 压缩,可选 AES-256-GCM、ChaCha20-Poly1305 加密
- 读写:有界流式处理,支持分片上传、Range 读取,S3-FIFO 读缓存,上传缓存和区块包优化
- 管理:Vue 3 + Reka UI 多语言管理界面,媒体图库、上传续传、空间洞察、维护工作台和巡检
- 协作:默认单管理员;按需启用项目管理、成员、逐桶权限、S3 应用密钥、API Token 与逻辑配额
需要 Docker 环境,在源码根目录执行:
./build.sh构建成功后得到 wxwmoe/mokyu:latest 和对应项目版本标签
默认运行镜像为 Debian slim
./build.sh --alpine 构建 Alpine 镜像;--api-only 省略内嵌前端,两项可组合
按 部署与恢复 准备配置、密钥和目录,随后:
docker compose up -d
docker exec mokyu mokyu cli status
docker exec mokyu mokyu cli bucket create media
docker exec mokyu mokyu cli credential create media
docker exec -it mokyu mokyu cli user create admin| 文档 | 内容 |
|---|---|
| 部署与恢复 | 从源码构建、Compose、Nginx、初始化、升级和备份恢复 |
| 群集部署 | control/worker/data/node 拓扑、API 通信、节点身份和多 IP DNS |
| 配置 | 全部 TOML 字段、默认值、资源预算和秘密文件 |
| CLI | 完整命令、参数、输出、危险确认和任务语义 |
| 管理指南 | 媒体、项目授权、密钥、配额、空间洞察与维护流程 |
| 管理 API | 方法、路径、认证、分页、并发条件和生成契约 |
| S3 兼容性 | 已实现操作、校验、Range、ACL 和明确不支持项 |
| 数据库 | 表与字段清单、关键约束、状态和迁移规则 |
| 存储格式 | CDC、AEAD/AAD、nonce、物理路径和恢复规则 |
上传缓存默认开启,已确认数据可能暂存本地等待后端落盘。请按备份与恢复要求保护数据库、密钥和本地唯一副本
(> ʌ <) 都看到这了,点个 Star 吧 ~
互操作参考
主要后端依赖
- tokio / MIT
- axum / MIT
- hyper / MIT
- s3s / Apache-2.0
- object_store / Apache-2.0
- sqlx / MIT OR Apache-2.0
- fastcdc / MIT
- blake3 / CC0-1.0 OR Apache-2.0
- zstd / BSD-3-Clause
- rustls / Apache-2.0 OR ISC OR MIT
- aws-lc-rs / ISC AND (Apache-2.0 OR ISC)
- argon2 / MIT OR Apache-2.0
- serde / MIT OR Apache-2.0
- clap / MIT OR Apache-2.0
管理前端
图标与字体
- Lucide / ISC
- Nunito / SIL Open Font License 1.1
- Resource Han Rounded / SIL Open Font License 1.1
- M PLUS Rounded 1c / SIL Open Font License 1.1
MIT © wxw.moe
