一个跨平台的 S3 对象存储管理客户端,支持 iOS、Android 和 Web。基于 React Native + Expo 构建。
- 多连接管理 -- 同时管理多个 S3 兼容存储服务
- 支持主流服务商 -- Cloudflare R2、Backblaze B2、Amazon S3 及任何 S3 兼容服务
- 文件浏览 -- 文件夹导航、面包屑路径、搜索、排序、类型过滤和分页加载
- 文件操作 -- 上传、下载、删除、重命名、复制、移动文件/文件夹,支持批量操作
- 文件预览 -- 图片缩放查看、视频播放、代码/文本高亮、PDF 浏览器打开
- 传输管理 -- 真实进度展示、可配置并发数,下载支持暂停/恢复,上传/下载支持取消
- 分享上传 -- 从系统分享菜单直接上传文件到指定存储桶
- 链接分享 -- 生成预签名 URL 或通过 Worker 代理生成短链接
- 存储桶管理 -- 创建/删除存储桶,按连接分组展示
- 深色模式 -- 跟随系统或手动切换
- 多语言 -- 中文 / English
- Cloudflare Worker 代理 -- 可选部署,用于加速访问和生成自定义域名链接,应用内请求通过 Header 传递凭证
| 存储桶列表 | 文件浏览 | 文件预览 |
|---|---|---|
![]() |
![]() |
![]() |
- Expo + React Native
- Expo Router -- 文件系统路由
- Zustand -- 状态管理
- AWS SDK v3 -- S3 操作
- Reanimated -- 动画
- Tailwind CSS + Uniwind -- 样式
- Cloudflare Workers -- 可选代理服务
- Node.js >= 20.19.4
- pnpm(推荐)
git clone https://github.com/your-username/s3man.git
cd s3man
pnpm installpnpm dev启动后按提示选择平台:
i-- iOS 模拟器(仅 macOS)a-- Android 模拟器w-- 浏览器
# Android APK(预览版)
eas build --platform android --profile preview
# iOS / Android 生产版
eas build --platform all --profile production项目包含一个 Cloudflare Worker 代理服务(worker/ 目录),用于:
- 隐藏 S3 凭证,通过自定义域名访问文件
- 生成简短的分享链接
部署方式:
cd worker
pnpm install
npx wrangler deploy详见 worker/README.md。
- 大桶浏览默认分页加载,进入文件夹时只加载首批对象,可手动继续加载更多。
- 超过 32MB 的上传会使用 S3 Multipart Upload,并对分片上传做有限重试。
- 正在进行的传输任务无法跨 App 重启继续执行;重启后会在传输历史中标记为中断失败,避免残留不可操作的进行中任务。
- 配置导出文件包含访问凭证,当前使用 AES-GCM 加密;仍应妥善保管导出的
.s3man文件。 - Web 端凭证受浏览器本地存储安全边界限制,不建议在不受信任设备上保存长期凭证。
app/ # 页面路由
(tabs)/ # 底部 Tab 页面(存储桶、传输、设置)
bucket/ # 文件浏览页
components/ # 通用组件
ui/ # 基础 UI 组件
lib/ # 核心逻辑
stores/ # Zustand 状态管理
i18n/ # 国际化
s3-service.ts # S3 操作封装
types.ts # 类型定义
worker/ # Cloudflare Worker 代理
MIT


