Dev Team
78b64b50ab
fix: 全面修复系统级统一OSS配置的12个关键bug
## 修复内容
### 后端API修复(server.js)
- 添加oss_config_source字段到登录响应,用于前端判断OSS直连上传
- 修复6个API未检查系统级统一OSS配置的问题:
* upload-signature: 使用effectiveBucket支持系统配置
* upload-complete: 添加OSS配置安全检查
* oss-usage/oss-usage-full: 检查系统级配置
* switch-storage: 改进OSS配置检查逻辑
* 5个管理员API: storage-cache检查/重建/修复功能
### 存储客户端修复(storage.js)
- rename方法: 使用getBucket()支持系统级统一配置
- stat方法: 使用getBucket()替代user.oss_bucket
- 重命名操作: 改用DeleteObjectCommand替代DeleteObjectsCommand
* 修复阿里云OSS"Missing Some Required Arguments"错误
* 解决重命名后旧文件无法删除的问题
- put方法: 改用Buffer上传替代流式上传
* 避免AWS SDK的aws-chunked编码问题
* 提升阿里云OSS兼容性
- 添加阿里云OSS特定配置:
* disableNormalizeBucketName: true
* checksumValidation: false
### 存储缓存修复(utils/storage-cache.js)
- resetUsage方法: 改用直接SQL更新,绕过UserDB字段白名单限制
* 修复缓存重建失败的问题
- 3个方法改用ossClient.getBucket():
* validateAndFix
* checkIntegrity
* rebuildCache
- checkAllUsersIntegrity: 添加系统级配置检查
### 前端修复(app.js)
- 上传路由: 使用oss_config_source判断而非has_oss_config
- 下载/预览: 统一使用oss_config_source
- 确保系统级统一OSS用户可以直连上传/下载
### 安装脚本优化(install.sh)
- 清理并优化安装流程
## 影响范围
**关键修复:**
- ✅ 系统级统一OSS配置现在完全可用
- ✅ 文件重命名功能正常工作(旧文件会被正确删除)
- ✅ 存储使用量缓存正确显示和更新
- ✅ 所有管理员功能支持系统级统一OSS
- ✅ 上传完成API不再有安全漏洞
**修复的Bug数量:** 12个核心bug
**修改的文件:** 6个
**代码行数:** +154 -264
## 测试验证
- ✅ 用户2存储使用量: 143.79 MB(已重建缓存)
- ✅ 文件重命名: 旧文件正确删除
- ✅ 管理员功能: 缓存检查/重建/修复正常
- ✅ 上传功能: 直连OSS,缓存正确更新
- ✅ 多用户: 用户3已激活并可正常使用
2026-01-20 22:23:37 +08:00
..
2026-01-20 20:41:18 +08:00
2026-01-20 22:23:37 +08:00