|
|
5f7599bd0d
|
style: align share and direct-link table layout
|
2026-02-17 22:42:11 +08:00 |
|
|
|
b261d2750c
|
fix: unify share/direct link click and copy actions
|
2026-02-17 22:39:19 +08:00 |
|
|
|
e909d9917a
|
fix: normalize traffic range buttons layout in settings
|
2026-02-17 22:14:40 +08:00 |
|
|
|
6242622f1a
|
feat: add independent direct-link sharing flow
|
2026-02-17 21:57:38 +08:00 |
|
|
|
d236a790a1
|
test: update admin/share edge scripts for cookie+csrf auth
|
2026-02-17 21:32:07 +08:00 |
|
|
|
aed5dfdcb2
|
feat: add server-side admin user pagination and align traffic report accounting
|
2026-02-17 20:30:02 +08:00 |
|
|
|
1eae645bfd
|
feat: improve admin user management with filters and pagination
|
2026-02-17 20:13:32 +08:00 |
|
|
|
c506cf83be
|
feat: improve media preview UX with caching and loading states
|
2026-02-17 20:03:02 +08:00 |
|
|
|
0885195cb5
|
fix: remove preview content-type override for aliyun oss compatibility
|
2026-02-17 19:51:01 +08:00 |
|
|
|
f0e7381c1d
|
fix: use preview-mode signed URLs and graceful media preview fallback
|
2026-02-17 19:36:49 +08:00 |
|
|
|
2b700978ad
|
fix: precheck local downloads to avoid JSON file download on quota errors
|
2026-02-17 19:32:48 +08:00 |
|
|
|
dd6c439eb3
|
fix: fallback to file icon when thumbnail load fails
|
2026-02-17 19:29:42 +08:00 |
|
|
|
978ae545e1
|
feat: make zero download quota block downloads and use -1 for unlimited
|
2026-02-17 19:25:39 +08:00 |
|
|
|
53e77ebf4e
|
fix: precheck local share download quota at download-url stage
|
2026-02-17 19:08:47 +08:00 |
|
|
|
3ab92d672d
|
chore: properly ignore runtime storage and data directories
|
2026-02-17 19:07:11 +08:00 |
|
|
|
19d3f29f6b
|
fix: move share quota block to download and add 3s download alert
|
2026-02-17 19:05:12 +08:00 |
|
|
|
10a3f09952
|
feat: switch OSS download quota to reservation plus log reconcile
|
2026-02-17 18:12:33 +08:00 |
|
|
|
b171b41599
|
fix: force OSS direct download even when traffic quota is enabled
|
2026-02-17 17:40:55 +08:00 |
|
|
|
3a22b88f23
|
feat: add user download traffic reports and restore OSS direct downloads
|
2026-02-17 17:36:26 +08:00 |
|
|
|
7687397954
|
feat: enhance download traffic quota lifecycle controls
|
2026-02-17 17:19:25 +08:00 |
|
|
|
2629237f9e
|
feat(quota): add downloadable traffic quota with local/OSS/share metering
|
2026-02-17 16:52:26 +08:00 |
|
|
|
b0e89df5c4
|
fix(security): harden CORS/cookie policy and share path validation
|
2026-02-12 21:39:01 +08:00 |
|
|
|
a3932747e3
|
fix(ui): apply true large-screen scaling and mobile overflow safeguards
|
2026-02-12 20:33:36 +08:00 |
|
|
|
8193101566
|
fix(frontend): improve 2k/4k scaling and mobile overflow responsiveness
|
2026-02-12 20:28:08 +08:00 |
|
|
|
12859cbb20
|
feat: apply UI/storage/share optimizations and quota improvements
|
2026-02-12 18:02:57 +08:00 |
|
|
|
1fcc60b9aa
|
feat(frontend): unify landing style and add product/scenes/start pages
|
2026-02-12 18:02:28 +08:00 |
|
|
|
d46d20f670
|
chore: 移除系统设置的密码二次验证
移除 /api/admin/settings 路由的 requirePasswordConfirmation 中间件,
简化管理员操作流程。系统设置更新现在仅依赖管理员登录认证。
注意:此修改降低了安全性,建议在生产环境中考虑其他安全措施。
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-01-21 11:58:39 +08:00 |
|
|
|
e5e2bfd9db
|
fix: 部署脚本添加 ENCRYPTION_KEY 和 ENABLE_CSRF 配置
修复问题:
1. 新安装时自动生成 ENCRYPTION_KEY(用于加密 OSS 敏感信息)
2. 新安装时默认启用 CSRF 保护(ENABLE_CSRF=true)
3. 升级时自动检查并补充缺失的 ENCRYPTION_KEY 和 ENABLE_CSRF
解决了部署后服务因缺少 ENCRYPTION_KEY 而无法启动的问题。
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-01-21 11:50:25 +08:00 |
|
Dev Team
|
355c5940d4
|
fix: 隐藏系统级统一OSS用户的OSS配置按钮
## 问题
用户权限为 oss_only 时仍显示"配置/修改OSS"按钮,但用户使用的是系统级统一OSS配置,
不需要也无法修改个人OSS配置。
## 修复
- app.html:1894 - 添加条件判断 `v-if="user?.has_oss_config"`
- 仅在用户有个人OSS配置时显示"修改个人OSS配置"按钮
- 修改按钮文本:"配置/修改OSS" → "修改个人OSS配置"
- 修改说明文本:"已配置云服务" → "已配置系统级OSS"
## 影响
- ✅ 系统级统一OSS用户不再看到误导性的配置按钮
- ✅ 有个人OSS配置的用户仍可以修改个人配置
- ✅ 提升用户体验,避免混淆
**Bug数量:** 1个UI问题
**修改文件:** 1个
|
2026-01-20 22:52:09 +08:00 |
|
Dev Team
|
0061d837ec
|
fix: 修复OSS删除单个文件失败的bug
## 问题
删除单个文件时使用DeleteObjectsCommand导致阿里云OSS报错:
"Missing Some Required Arguments."
## 修复
- 改用DeleteObjectCommand删除单个文件
- 修复storage.js:1224的delete方法
- 与之前修复的rename方法保持一致
## 影响
- ✅ 文件删除功能现在正常工作
- ✅ 与重命名功能使用相同的删除命令
- ✅ 完全兼容阿里云OSS
**Bug数量:** 1个
**修改文件:** 1个
|
2026-01-20 22:24:05 +08:00 |
|
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 |
|
Dev Team
|
53ca5e56e8
|
feat: 删除SFTP上传工具,修复OSS配置bug
主要变更:
- 删除管理员工具栏及上传工具相关功能(后端API + 前端UI)
- 删除upload-tool目录及相关文件
- 修复OSS配置测试连接bug(testUser缺少has_oss_config标志)
- 新增backend/utils加密和缓存工具模块
- 更新.gitignore排除测试报告文件
技术改进:
- 统一使用OSS存储,废弃SFTP上传方式
- 修复OSS配置保存和测试连接时的错误处理
- 完善代码库文件管理,排除临时报告文件
|
2026-01-20 20:41:18 +08:00 |
|
|
|
14be59be19
|
fix: 自动生成 SESSION_SECRET 配置
- 新安装时自动生成随机 SESSION_SECRET
- 更新时自动补充缺失的 SESSION_SECRET
- 避免生产环境因缺少密钥而启动失败
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-01-20 11:00:17 +08:00 |
|
|
|
efaa2308eb
|
feat: 全面优化代码质量至 8.55/10 分
## 安全增强
- 添加 CSRF 防护机制(Double Submit Cookie 模式)
- 增强密码强度验证(8字符+两种字符类型)
- 添加 Session 密钥安全检查
- 修复 .htaccess 文件上传漏洞
- 统一使用 getSafeErrorMessage() 保护敏感错误信息
- 增强数据库原型污染防护
- 添加被封禁用户分享访问检查
## 功能修复
- 修复模态框点击外部关闭功能
- 修复 share.html 未定义方法调用
- 修复 verify.html 和 reset-password.html API 路径
- 修复数据库 SFTP->OSS 迁移逻辑
- 修复 OSS 未配置时的错误提示
- 添加文件夹名称长度限制
- 添加文件列表 API 路径验证
## UI/UX 改进
- 添加 6 个按钮加载状态(登录/注册/修改密码等)
- 将 15+ 处 alert() 替换为 Toast 通知
- 添加防重复提交机制(创建文件夹/分享)
- 优化 loadUserProfile 防抖调用
## 代码质量
- 消除 formatFileSize 重复定义
- 集中模块导入到文件顶部
- 添加 JSDoc 注释
- 创建路由拆分示例 (routes/)
## 测试套件
- 添加 boundary-tests.js (60 用例)
- 添加 network-concurrent-tests.js (33 用例)
- 添加 state-consistency-tests.js (38 用例)
- 添加 test_share.js 和 test_admin.js
## 文档和配置
- 新增 INSTALL_GUIDE.md 手动部署指南
- 新增 VERSION.txt 版本历史
- 完善 .env.example 配置说明
- 新增 docker-compose.yml
- 完善 nginx.conf.example
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-01-20 10:45:51 +08:00 |
|
|
|
ab7e08a21b
|
fix: 全面修复和优化 OSS 功能
## 安全修复
- 修复 /api/user/profile 接口泄露 OSS 密钥的安全漏洞
- 增强 getObjectKey 路径安全检查(空字节注入、URL 编码绕过)
- 修复 storage.end() 重复调用问题
- 增强上传签名接口的安全检查
## Bug 修复
- 修复 rename 使用错误的 PutObjectCommand,改为 CopyObjectCommand
- 修复 CopySource 编码问题,正确处理特殊字符
- 修复签名 URL 生成功能(添加 @aws-sdk/s3-request-presigner)
- 修复 S3Client 配置(阿里云 region 格式、endpoint 处理)
- 修复分页删除和列表功能(超过 1000 文件的处理)
- 修复分享下载使用错误的存储类型字段
- 修复前端媒体预览异步处理错误
- 修复 OSS 直传 objectKey 格式不一致问题
- 修复包名错误 @aws-sdk/request-presigner -> @aws-sdk/s3-request-presigner
- 修复前端下载错误处理不完善
## 新增功能
- 添加 OSS 连接测试 API (/api/user/test-oss)
- 添加重命名失败回滚机制
- 添加 OSS 配置前端验证
## 其他改进
- 更新 install.sh 仓库地址为 git.workyai.cn
- 添加 crypto 模块导入
- 修复代码格式和重复定义问题
- 添加缺失的表单对象定义
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-01-20 09:46:00 +08:00 |
|
Claude Opus
|
e8d053f28d
|
fix: 完善存储客户端实现并删除重复导入
- LocalStorageClient 和 OssStorageClient 添加 formatSize() 方法
- 删除 mkdir() 中重复的 PutObjectCommand 导入
- 统一使用共享的 formatFileSize() 函数
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-01-18 21:49:44 +08:00 |
|
Claude Opus
|
7aa8a862a4
|
chore: 优化代码质量和安全性\n\n- 删除未使用的 @aws-sdk/lib-storage 依赖,简化依赖\n- 修复重复导入 database 模块\n- 消除 formatSize 重复代码,提取为共享函数\n- 修复 verify.html XSS 漏洞,添加 HTML 转义\n- 更新 index.html 过时文案(断点续传→直连上传)
|
2026-01-18 20:23:39 +08:00 |
|
Claude Opus
|
2a4927f260
|
refactor: 优化代码重复和依赖导入
- ♻️ buildS3Config 复用 OssStorageClient.buildConfig (DRY 原则)
- ♻️ 删除重复的 crypto 导入(3处)
- ✅ 提高代码可维护性:配置逻辑只需在一处维护
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-01-18 18:27:43 +08:00 |
|
Claude Opus
|
92b70a11d7
|
refactor: 清理所有调试日志和死代码
- 🗑️ 删除未使用的依赖: net, dns 模块
- 🧹 将 console.log("[DEBUG]") 替换为 SystemLogDB.log()
- 🧹 清理分享验证相关的调试日志
- 🧹 清理数据库查询的调试日志
- 🧹 删除下载功能的调试日志
- ✅ 代码更专业,日志统一使用 SystemLogDB
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-01-18 18:09:18 +08:00 |
|
Claude Opus
|
664cdda041
|
fix: 清理 install.sh 中的所有 FTP/SFTP 残留代码
- 🐛 修复数据库路径检查(ftp-manager.db → data/database.db)
- 🐛 修复数据库迁移函数中的旧数据库路径
- 🐛 修复上传限制检查中的数据库路径
- 🐛 删除对不存在字段的引用
- ✅ 优化数据库迁移逻辑
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-01-18 17:44:45 +08:00 |
|
Claude Opus
|
e2806126a6
|
fix: 修复管理员OSS配置缺失和数据库迁移问题
- 🐛 修复管理员无法配置OSS的问题(添加管理员OSS配置界面)
- 🐛 修复 database.js 迁移代码引用不存在的 has_ftp_config 字段
- ✨ 管理员设置页面新增OSS配置、空间统计、存储切换功能
- 📝 完善管理员OSS配置体验
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-01-18 17:36:34 +08:00 |
|
Claude Opus
|
0b0e5b9d7c
|
feat: v3.1.0 OSS直连优化与代码质量提升
- 🚀 OSS 直连上传下载(用户直连OSS,不经过后端)
- ✨ 新增 Presigned URL 签名接口
- ✨ 支持自定义 OSS endpoint 配置
- 🐛 修复 buildS3Config 不支持自定义 endpoint 的问题
- 🐛 清理残留的 basic-ftp 依赖
- ♻️ 更新 package.json 项目描述和版本号
- 📝 完善 README.md 更新日志和 CORS 配置说明
- 🔒 安全性增强:签名 URL 15分钟/1小时有效期
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-01-18 17:14:16 +08:00 |
|
|
|
71c2c0465e
|
更新 README:迁移到 Gitea 仓库
- 更新一键部署命令(curl/wget)
- 更新 Docker 部署的 git clone 命令
- 更新开发环境的 git clone 命令
- 更新项目地址,Gitea 为主仓库,Gitee 为镜像
- 更新问题反馈说明
|
2025-12-10 22:59:34 +08:00 |
|
|
|
5d1ae9a343
|
🎨 调整文件列表hover颜色
- 暗色主题:rgba(255, 255, 255, 0.05) 微亮
- 亮色主题:rgba(0, 0, 0, 0.04) 微暗
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-30 16:35:45 +08:00 |
|
|
|
1503fe1d97
|
🐛 修复文件列表hover时变白的问题
- 移除硬编码的mouseover/mouseout颜色
- 添加.file-list-row类使用CSS处理hover效果
- 深色/浅色主题都使用半透明紫色作为hover背景
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-30 16:30:16 +08:00 |
|
|
|
d3fcb159f9
|
🐛 修复文件名包含反引号时变成undefined的问题
- 从sanitizeInput正则表达式中移除反引号
- 之前map中没有反引号映射导致返回undefined
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-30 15:27:59 +08:00 |
|
|
|
0e6230612c
|
🐛 加强文件名解码的空值处理
- 后端decodeHtmlEntities添加空字符串默认值
- 前端decodeHtmlEntities非字符串时返回空字符串
- getFileDisplayName增强类型检查
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-30 14:56:26 +08:00 |
|
|
|
dd97328b2f
|
✨ 前端添加HTML实体解码兜底
- 添加decodeHtmlEntities方法解码文件名
- 添加getFileDisplayName统一获取显示名称
- 确保文件名正确显示,即使后端未解码
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-30 14:04:50 +08:00 |
|
|
|
4250e7de2f
|
✨ 添加displayName字段显示解码后的文件名
- 后端返回文件列表时添加displayName字段(解码HTML实体)
- 前端使用displayName显示文件名,保持原始name用于操作
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-30 13:54:58 +08:00 |
|
|
|
e8c6043a1f
|
🐛 修复特殊字符文件名的处理问题
- 添加decodeHtmlEntities函数解码HTML实体
- 在rename/mkdir/folder-info/delete接口中解码文件名和路径
- 删除操作支持多候选路径,处理二次编码情况
- 移除sanitizeInput中对反引号的转义
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-30 13:44:23 +08:00 |
|