Releases: ONEGAYI/R2-Manager
Releases · ONEGAYI/R2-Manager
Release list
v1.2.1 - 文件夹上传 & 桌面端确认对话框修复
🆕 v1.2.0 - 文件夹上传功能
新增功能
- 文件夹上传 - 支持上传整个文件夹,保留目录结构
- 新增"选择整个文件夹"按钮(FolderUp 图标)
- Tauri 桌面端:使用原生文件夹选择对话框 + 递归读取
- 浏览器端:File System Access API (Chrome 86+) + webkitdirectory 降级
- 拖拽上传:支持拖拽文件夹到上传区域
- 空目录支持:自动创建空目录(通过 0 字节占位文件)
修复
- 批量删除确认对话框中文件夹名称显示为空的问题
🔧 v1.2.1 - 桌面端确认对话框修复
修复问题
- 桌面端确认对话框失效 - 修复
window.confirm在 Tauri WebView2 中总是返回true的问题- 批量删除/单文件删除时会直接删除,不再等待用户确认
- 重启服务/重置设置等操作同样受影响
- 解决方案:在 Tauri 环境中使用原生对话框(
@tauri-apps/plugin-dialog)
技术细节
- 新增
src/lib/confirm.ts: 跨平台确认对话框工具函数- Tauri 环境:使用原生系统对话框(异步,带警告图标)
- 浏览器环境:继续使用
window.confirm(同步)
v1.1.4 - 冲突处理全面优化
✨ 新功能
冲突对话框交互重构 (v1.1.2)
- 拖选框选功能 - 支持鼠标拖动框选多个冲突项
- 绘制选择框可视化反馈(半透明蓝色边框)
- 框选时自动包含文件夹的所有子孙项
- 智能判断:超半数已选中则取消,否则选中
- Shift 范围选择 - 支持 Shift+点击进行范围选择
- 从上一个选中项(锚点)到当前项的范围
- 智能反选逻辑(根据范围内选中比例决定操作)
- 锚点显示视觉高亮(蓝色内环)
- 层级展示 - 使用缩进+连接线展示文件夹层级关系
- 自动根据文件路径计算父子关系
- 选中文件夹自动选中所有子孙项
- Tooltip 信息展示 - 源文件/目标文件详情改为悬停显示
- 显示完整路径、大小、修改时间
- 减少默认 UI 复杂度
- "先选后设"批量模式 - 从逐项下拉选择改为批量设置策略
- 操作栏改为:全选复选框 + 选中计数 + 策略按钮
⚡ 性能优化
冲突检测性能优化 (v1.1.3)
- "逐个询问"冲突检测速度提升 26 倍
- 优化前:28 个冲突耗时 ~17.7 秒(串行 HeadObject 调用)
- 优化后:28 个冲突耗时 ~0.67 秒(并行 ListObjects 方案)
- 原理:将 2N 次串行 HeadObject 调用改为 2 次并行 ListObjects 调用
批量操作性能优化 (v1.1.1)
- "全部重命名"策略减少约 50% 的 API 调用
- 复用已获取的文件列表避免重复 API 调用
- 批量复制/移动的顶层和子项处理均受益
🐛 Bug 修复
v1.1.4
- 跨桶复制/移动时未显示 ConflictDialog - 修复选择"逐个询问"策略时直接跳过冲突的问题
- handleMove/handleCopy 新增 conflictStrategy 参数支持
- 无冲突或检测失败时降级为 skip 策略继续操作
- 冲突检测支持文件夹展开 - 修复文件夹复制/移动时冲突检测不完整的问题
- 使用 ListObjectsV2Command 列出文件夹下所有文件
- 正确映射源文件到目标位置
📦 安装包
| 文件 | 说明 |
|---|---|
CloudflareR2 Manager_1.1.4_x64-setup.exe |
NSIS 安装包(推荐) |
CloudflareR2 Manager_1.1.4_x64_en-US.msi |
MSI 安装包 |
完整更新日志: v1.1.0...v1.1.4
v1.1.0 - 逐项冲突策略支持
✨ 新功能
逐项冲突策略支持
- 每个冲突文件可独立选择处理方式(跳过/保留两者/覆盖)
- 新增逐个询问冲突策略作为默认选项,遇到冲突时逐个确认
- 上传冲突检测 - 上传前检测同名文件冲突
ConflictDialog 组件重构
- 每个冲突项独立下拉选择处理策略
- 新增全部设为快捷按钮(全部跳过/全部保留/全部覆盖)
- 策略统计显示(X 项跳过、X 项保留、X 项覆盖)
- 根据选择的策略显示不同的背景色高亮
🐛 Bug 修复
- 修复批量操作全部跳过策略导致所有文件被错误跳过的问题
- 修复空文件夹移动时 skip 策略检查顺序错误
📦 安装包
| 文件 | 说明 |
|---|---|
CloudflareR2 Manager_1.1.0_x64-setup.exe |
NSIS 安装包(推荐) |
CloudflareR2 Manager_1.1.0_x64_en-US.msi |
MSI 安装包 |
完整更新日志: v1.0.0...v1.1.0
v1.0.0 - Cloudflare R2 Manager 正式版
🎉 Cloudflare R2 Manager v1.0.0
一个现代化的 Cloudflare R2 存储桶可视化管理工具
📖 项目简介
Cloudflare R2 Manager 是一个功能完善的 R2 存储桶管理工具,提供直观的可视化操作界面。支持 Web 浏览器和 Windows 桌面端两种使用方式。
技术栈
- 前端: React 18 + TypeScript + Vite
- 后端: Express.js 代理服务器
- 桌面端: Tauri v2
- 样式: Tailwind CSS + shadcn/ui
- 动效: Framer Motion
- 状态: Zustand
- API: AWS S3 SDK (兼容 R2)
✨ 核心功能
🪣 存储桶管理
- 创建存储桶(名称格式校验)
- 删除存储桶(安全确认,需输入桶名)
- 桶列表浏览与快速切换
📁 文件操作
- 上传: 拖拽上传、按钮上传、文件夹上传
- 下载: 单文件下载、批量下载
- 删除: 单文件删除、批量删除、递归删除文件夹
- 重命名: 文件/文件夹重命名
- 复制/移动: 跨桶复制移动、文件夹递归操作、循环引用检测
📦 批量操作
- 全选/取消全选当前层级
- 批量删除(递归处理文件夹)
- 批量下载(并发获取预签名 URL)
- 批量复制/移动
- SSE 实时进度反馈
- 冲突处理策略(跳过/覆盖/保留两者)
- "应用到所有"一键批量处理
- 操作结果详情(成功/重命名/跳过/失败统计)
🚀 传输中心
类似百度网盘的传输管理页面,提供完整的上传下载任务管理:
任务管理
- 进行中任务列表(上传/下载/批量操作)
- 历史记录(最近 100 条)
- 任务排队机制(全局线程池)
多线程分块传输
- 上传: S3 Multipart Upload API,支持大文件
- 下载: Range 请求分块下载
- 可配置分块大小(上传 5-16MB,下载 4-32MB)
- 可配置并发线程数(1-10)
暂停与恢复
- 上传暂停/恢复(断点续传)
- 下载暂停/恢复(Range 请求续传)
- 暂停状态持久化(应用重启后可恢复)
- IndexedDB 缓存已下载分块
错误重试
- 自动重试网络错误和服务器临时不可用
- 指数退避 + 随机抖动策略
- 可配置重试次数和延迟
进度反馈
- 实时进度条和百分比
- 传输速度计算与显示
- 进度气泡组件(批量操作时右下角显示)
- 子项级别状态追踪
🎨 用户界面
视觉设计
- 现代化 UI 设计
- 深色/浅色/跟随系统三种主题
- shadcn/ui 组件库
- Framer Motion 流畅动画
文件浏览
- 列表视图 / 网格视图切换
- 文件图标自动识别(vscode-icons 风格)
- 面包屑路径导航(Win11 风格折叠)
- 响应式布局适配
文件浏览器
- 移动/复制对话框集成文件夹浏览器
- 可折叠侧边栏
- 跨桶操作支持
- 手动输入路径
💻 桌面端
Tauri v2
- 使用系统 WebView2(Windows 10/11 内置)
- 体积小巧(约 5-15 MB)
- Sidecar 方式打包 Express 服务端
配置持久化
- 桌面端:配置存储到
{Documents}/CloudFlareR2-Manager/config.json - 浏览器端:配置存储到 localStorage
- 自动迁移旧配置
安装包
- MSI 安装包
- NSIS 安装包(中文界面)
- 升级时自动关闭旧版本进程
⚙️ 设置与配置
凭证配置
- Account ID
- Access Key ID
- Secret Access Key
- 连接测试
传输设置
- 上传并发线程数(1-10)
- 下载并发线程数(1-10)
- 批量操作并发数(1-8)
- 分块大小配置
错误重试配置
- 最大重试次数
- 基础延迟时间
- 最大延迟时间
系统功能
- 重启服务
- 清除所有配置(危险操作)
🔧 开发与构建
开发模式
# 安装依赖
npm install
cd server && npm install && cd ..
# 同时启动前后端
npm run dev桌面端打包
# 完整打包流程
npm run release📋 系统要求
Web 版
- 现代浏览器(Chrome、Firefox、Edge、Safari)
- Node.js 18+
桌面版
- Windows 10/11
- WebView2 运行时(系统内置)
🔐 安全说明
- 凭证仅保存在本地(不上传到任何服务器)
- 桌面端配置文件存储在用户文档目录
- 后端代理服务器仅监听 localhost
📜 License
MIT License
🙏 致谢
完整变更记录请查看 CHANGELOG.md