Skip to content

Commit 4d9a971

Browse files
committed
feat(backup): 新增R2对象存储备份功能并升级版本至7.1
新增R2对象存储备份功能,支持从账号列表选择Cloudflare账号并自动加载Bucket 扩展数据库结构,新增R2备份配置表和迁移逻辑 重构备份界面,支持WebDAV和R2存储类型切换 完善备份恢复流程,新增账号ID映射更新机制 更新版本号至7.1并添加新版发布说明
1 parent d9eff09 commit 4d9a971

13 files changed

Lines changed: 1259 additions & 81 deletions

File tree

RELEASE_NOTES_v7.0.md

Lines changed: 0 additions & 65 deletions
This file was deleted.

RELEASE_NOTES_v7.1.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
## 🎉 主要更新
2+
3+
### 备份恢复功能增强
4+
- **☁️ 新增 AWS S3 / Cloudflare R2 存储支持**
5+
- 在备份恢复界面新增 R2 对象存储选项
6+
- 支持从已有账号列表中选择 Cloudflare 账号
7+
- 自动加载账号下的 R2 Bucket 列表
8+
- 支持手动输入或从下拉列表选择 Bucket 名称
9+
- 完整的备份路径配置和自动备份开关
10+
11+
- **� 多存储类型支持**
12+
- 新增存储类型切换功能(WebDAV / R2)
13+
- 统一的备份/恢复操作界面
14+
- 根据选择的存储类型自动切换配置界面
15+
- 独立的配置保存和加载机制
16+
17+
- **� R2 备份实现**
18+
- 使用现有账号的 R2 S3 凭证进行认证
19+
- 支持账号列表的完整备份和恢复
20+
- 自动处理恢复后的账号 ID 映射更新
21+
- 完善的错误处理和用户提示
22+
23+
## 📋 技术细节
24+
25+
### R2 备份架构
26+
- **数据模型**: 新增 `R2BackupConfig` 实体,存储 R2 备份配置
27+
- **数据库**: 扩展 Room 数据库,添加 R2 备份配置表
28+
- **网络操作**: 所有 R2 相关网络操作使用 `withContext(Dispatchers.IO)` 确保在后台线程执行
29+
- **状态管理**: 使用 Flow 实现配置的实时更新和 UI 自动刷新
30+
- **账号映射**: 恢复备份时自动更新 R2 配置中的账号 ID,保持配置有效性
31+
32+
### UI 优化
33+
- **存储类型切换**: 使用 MaterialButtonToggleGroup 实现存储类型选择
34+
- **账号选择**: AutoCompleteTextView 支持账号名称搜索和选择
35+
- **Bucket 选择**: 支持下拉列表选择和手动输入,满足不同使用场景
36+
- **智能加载**: 只在切换账号时加载 Bucket 列表,避免不必要的网络请求
37+
- **配置持久化**: 正确处理配置的保存和恢复,确保用户配置不丢失
38+
39+
## 🔄 升级建议
40+
- 首次使用 R2 备份功能需要配置 R2 访问凭证
41+
- 建议测试备份和恢复功能,确保数据完整性
42+
- 恢复备份后 R2 配置会自动更新,无需重新配置
43+
44+
## 📦 数据库变更
45+
- 新增 `r2_backup_config` 表,存储 R2 备份配置
46+
- 添加数据库迁移逻辑,确保平滑升级

app/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ android {
3030
applicationId = "com.muort.upworker"
3131
minSdk = 26
3232
targetSdk = 36
33-
versionCode = 2026010401
34-
versionName = "7.0"
33+
versionCode = 2026010701
34+
versionName = "7.1"
3535

3636
vectorDrawables {
3737
useSupportLibrary = true

0 commit comments

Comments
 (0)