Skip to content

Commit 4d58d0a

Browse files
committed
feat: 更新版本号至 7.0,添加 R2 存储优化和流式下载支持,修复临时文件管理问题
1 parent f9451b7 commit 4d58d0a

4 files changed

Lines changed: 68 additions & 77 deletions

File tree

.github/workflows/release.yml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,12 +78,9 @@ jobs:
7878
7979
if [ -f "$RELEASE_NOTES_FILE" ]; then
8080
echo "使用 $RELEASE_NOTES_FILE 作为发布说明"
81-
# 读取文件内容,添加版本信息头部
8281
{
83-
echo "## 🎉 CloudFlare Assistant ${TAG_NAME} 发布"
8482
echo ""
85-
echo "**版本号**: ${{ steps.version.outputs.version_name }}"
86-
echo "**Build**: ${{ steps.version.outputs.version_code }}"
83+
echo "## 🎉 新版本发布"
8784
echo ""
8885
cat "$RELEASE_NOTES_FILE"
8986
echo ""

RELEASE_NOTES_v6.9.md

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

RELEASE_NOTES_v7.0.md

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
## 🎉 主要更新
2+
3+
### R2 存储优化
4+
- **🔧 使用 AWS SDK 官方实现**
5+
- 替换了自签名 S3 API,使用 AWS Android SDK 2.81.1(最新版本)
6+
- 通过 Presigned URL 方式解决 R2 不支持 STREAMING-AWS4-HMAC-SHA256-PAYLOAD 签名的问题
7+
- 提升了上传稳定性和兼容性
8+
- 完美支持中文及特殊字符文件名
9+
10+
- **💾 流式下载支持**
11+
- 新增大文件流式下载功能,避免内存溢出(OOM)
12+
- 内存占用降至 < 8KB,支持任意大小文件下载
13+
- 下载流程优化:用户先选择保存位置,再流式下载到临时文件,最后复制到目标位置
14+
15+
- **🗑️ 临时文件管理**
16+
- 修复 R2 对象上传成功后临时缓存文件未删除的问题
17+
- 上传完成(成功或失败)后立即清理临时文件,避免缓存堆积
18+
19+
### Worker 脚本管理优化
20+
- **🗑️ 临时文件清理**
21+
- 修复 Worker 脚本选择文件上传后临时缓存文件未删除的问题
22+
- 修复脚本编辑保存时使用 `deleteOnExit()` 导致文件无法及时清理的问题
23+
- 优化上传流程,确保所有临时文件在上传完成后立即删除
24+
25+
- **📝 代码质量提升**
26+
- 修复 `showConfigKvBindingsDialog` 函数中的缩进混乱问题
27+
- 统一代码格式,提升可读性和可维护性
28+
29+
## 🐛 问题修复
30+
31+
### R2 功能
32+
- ✅ 修复使用 AWS SDK AmazonS3Client 构造函数的废弃警告
33+
- ✅ 修复 R2 上传时 STREAMING 签名不支持的错误
34+
- ✅ 修复大文件下载导致 OOM 的问题
35+
- ✅ 修复上传成功后临时文件未删除导致缓存堆积
36+
37+
### Worker 功能
38+
- ✅ 修复选择文件上传后临时缓存文件未删除
39+
- ✅ 修复脚本编辑保存时 `deleteOnExit()` 无效的问题
40+
- ✅ 修复 KV 绑定配置对话框的代码缩进问题
41+
42+
## 📋 技术细节
43+
44+
### R2 实现架构
45+
- **SDK**: AWS Android SDK S3 2.81.1 + Core 2.81.1
46+
- **上传策略**: AWS SDK 生成 Presigned PUT URL(有效期 1 小时),OkHttp 执行实际 HTTP 请求
47+
- **下载策略**: 使用 Kotlin `copyTo()` 流式传输,内存占用极低
48+
- **客户端缓存**: ConcurrentHashMap 缓存 S3 客户端实例,避免重复创建
49+
- **区域配置**: US_EAST_1 + 自定义 R2 端点,启用 Path-Style 访问
50+
51+
### 临时文件管理
52+
- **上传**: 使用应用私有缓存目录(`context.cacheDir`
53+
- **清理时机**: 上传完成(成功/失败)后在回调中立即删除
54+
- **下载**: 先下载到临时文件,复制到用户选择位置后立即删除临时文件
55+
56+
## 🔄 升级建议
57+
- 建议清理应用缓存目录,删除之前版本遗留的临时文件
58+
- R2 功能已完全重构,建议测试上传/下载功能确保正常工作
59+
60+
## 📦 依赖更新
61+
```gradle
62+
// 新增
63+
implementation("com.amazonaws:aws-android-sdk-s3:2.81.1")
64+
implementation("com.amazonaws:aws-android-sdk-core:2.81.1")
65+
```

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 = 2026010308
34-
versionName = "6.9"
33+
versionCode = 2026010401
34+
versionName = "7.0"
3535

3636
vectorDrawables {
3737
useSupportLibrary = true

0 commit comments

Comments
 (0)