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>
This commit is contained in:
101
README.md
101
README.md
@@ -1,10 +1,10 @@
|
||||
# 玩玩云 - 现代化云存储管理平台
|
||||
|
||||
> 一个功能完整的云存储管理系统,支持本地存储和SFTP存储,提供文件管理、分享、邮件验证等企业级功能。
|
||||
> 一个功能完整的云存储管理系统,支持本地存储和OSS云存储,提供文件管理、分享、邮件验证等企业级功能。
|
||||
|
||||
<div align="center">
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
@@ -13,13 +13,13 @@
|
||||
|
||||
## ✨ 项目特色
|
||||
|
||||
玩玩云是一个现代化的Web文件管理系统,让您可以通过浏览器轻松管理文件。系统支持**双存储模式**(本地存储/SFTP存储),提供完整的用户管理、文件分享、邮件通知等企业级功能。
|
||||
玩玩云是一个现代化的Web文件管理系统,让您可以通过浏览器轻松管理文件。系统支持**双存储模式**(本地存储/OSS云存储),提供完整的用户管理、文件分享、邮件通知等企业级功能。
|
||||
|
||||
### 核心特性
|
||||
|
||||
#### 🗂️ 双存储模式
|
||||
- **本地存储** - 快速读写,适合小型部署
|
||||
- **SFTP存储** - 连接远程服务器,支持大容量存储
|
||||
- **OSS云存储** - 连接云服务,支持大容量存储(支持阿里云 OSS、腾讯云 COS、AWS S3)
|
||||
- **一键切换** - 在管理面板轻松切换存储方式
|
||||
|
||||
#### 📁 完整的文件管理
|
||||
@@ -32,7 +32,7 @@
|
||||
- 生成分享链接,支持密码保护
|
||||
- 支持有效期设置(1小时-永久)
|
||||
- 分享密码防爆破保护(10次失败封锁20分钟)
|
||||
- 支持HTTP直链和SFTP双模式下载
|
||||
- 支持API直接下载
|
||||
|
||||
#### 👥 完善的用户系统
|
||||
- 用户注册、登录、邮箱验证
|
||||
@@ -139,16 +139,47 @@ docker-compose logs -f
|
||||
- 文件存储在服务器本地
|
||||
- 适合小型部署
|
||||
|
||||
#### SFTP存储(适合独立存储)
|
||||
1. 点击"切换到 SFTP"
|
||||
2. 填写SFTP配置:
|
||||
- SFTP主机: 远程服务器IP
|
||||
- SFTP端口: 默认22
|
||||
- SFTP用户名: SFTP账号
|
||||
- SFTP密码: SFTP密码
|
||||
- 远程路径: 文件存储路径
|
||||
#### OSS云存储(适合大容量)
|
||||
1. 点击"切换到 OSS"
|
||||
2. 填写 OSS 配置:
|
||||
- 云服务商:选择阿里云/腾讯云/AWS S3
|
||||
- 地域:如 `oss-cn-hangzhou` / `ap-guangzhou` / `us-east-1`
|
||||
- Access Key ID:从云服务商获取
|
||||
- Access Key Secret:从云服务商获取
|
||||
- 存储桶名称:在云控制台创建
|
||||
- 自定义 Endpoint:可选,一般不需要填写
|
||||
3. 保存配置
|
||||
|
||||
**⚠️ 重要:OSS Bucket CORS 配置**
|
||||
|
||||
使用 OSS 直连上传下载功能,必须在 Bucket 中配置 CORS 规则:
|
||||
|
||||
```xml
|
||||
<!-- 阿里云 OSS / 腾讯云 COS / AWS S3 通用配置 -->
|
||||
<CORSConfiguration>
|
||||
<CORSRule>
|
||||
<AllowedOrigin>https://你的域名.com</AllowedOrigin>
|
||||
<AllowedOrigin>https://www.你的域名.com</AllowedOrigin>
|
||||
<!-- 如果是本地测试,添加: -->
|
||||
<AllowedOrigin>http://localhost:3000</AllowedOrigin>
|
||||
|
||||
<AllowedMethod>GET</AllowedMethod>
|
||||
<AllowedMethod>PUT</AllowedMethod>
|
||||
<AllowedMethod>POST</AllowedMethod>
|
||||
<AllowedMethod>DELETE</AllowedMethod>
|
||||
|
||||
<AllowedHeader>*</AllowedHeader>
|
||||
<ExposeHeader>ETag</ExposeHeader>
|
||||
<ExposeHeader>x-amz-request-id</ExposeHeader>
|
||||
</CORSRule>
|
||||
</CORSConfiguration>
|
||||
```
|
||||
|
||||
**各云服务商控制台配置路径:**
|
||||
- **阿里云 OSS**:Bucket 管理 → 权限管理 → 跨域设置 → 创建规则
|
||||
- **腾讯云 COS**:存储桶管理 → 安全管理 → 跨域访问 CORS 设置
|
||||
- **AWS S3**:Bucket → Permissions → CORS configuration
|
||||
|
||||
### 配置邮件服务
|
||||
|
||||
进入"管理面板" → "系统设置" → "邮件配置":
|
||||
@@ -225,7 +256,7 @@ vue-driven-cloud-storage/
|
||||
- **Node.js 20** - JavaScript 运行时
|
||||
- **Express 4.x** - Web 应用框架
|
||||
- **better-sqlite3** - 轻量级数据库
|
||||
- **ssh2-sftp-client** - SFTP 客户端库
|
||||
- **@aws-sdk/client-s3** - OSS/S3 云存储 SDK
|
||||
- **jsonwebtoken** - JWT 认证
|
||||
- **bcrypt** - 密码加密
|
||||
- **nodemailer** - 邮件发送
|
||||
@@ -262,7 +293,7 @@ vue-driven-cloud-storage/
|
||||
- ✅ 支持反向代理 X-Forwarded-For
|
||||
|
||||
### 数据安全
|
||||
- ✅ SFTP 密码加密存储
|
||||
- ✅ OSS 密钥加密存储
|
||||
- ✅ 数据库事务支持
|
||||
- ✅ 定期清理过期分享
|
||||
- ✅ 安全日志记录
|
||||
@@ -303,8 +334,8 @@ docker-compose restart
|
||||
|
||||
```bash
|
||||
# 备份数据库
|
||||
sudo cp /var/www/vue-driven-cloud-storage/backend/ftp-manager.db \
|
||||
/backup/ftp-manager.db.$(date +%Y%m%d)
|
||||
sudo cp /var/www/vue-driven-cloud-storage/backend/data/database.db \
|
||||
/backup/database.db.$(date +%Y%m%d)
|
||||
|
||||
# 备份上传文件(本地存储模式)
|
||||
sudo tar -czf /backup/uploads-$(date +%Y%m%d).tar.gz \
|
||||
@@ -368,10 +399,17 @@ A: 默认限制 5GB,可在 Nginx 配置中修改 `client_max_body_size`。
|
||||
2. 检查防火墙是否开放端口
|
||||
3. 查看 Nginx 日志:`sudo tail -f /var/log/nginx/error.log`
|
||||
|
||||
**Q: SFTP 连接失败**
|
||||
1. 检查 SFTP 服务器是否可访问
|
||||
2. 验证用户名和密码是否正确
|
||||
3. 检查远程路径权限
|
||||
**Q: OSS 连接失败**
|
||||
1. 检查云服务商控制台,确认 Access Key 是否有效
|
||||
2. 验证地域和存储桶名称是否正确
|
||||
3. 检查存储桶的权限设置(需要允许读写操作)
|
||||
4. 检查网络连接和防火墙设置
|
||||
|
||||
**Q: OSS 上传失败,提示 CORS 错误**
|
||||
1. 确认已在 Bucket 中配置 CORS 规则(参考上方配置指南)
|
||||
2. 检查 AllowedOrigin 是否包含你的域名
|
||||
3. 确认 AllowedMethod 包含 PUT 方法
|
||||
4. 检查 AllowedHeader 设置为 *
|
||||
|
||||
**Q: 邮件发送失败**
|
||||
1. 检查 SMTP 配置是否正确
|
||||
@@ -380,6 +418,25 @@ A: 默认限制 5GB,可在 Nginx 配置中修改 `client_max_body_size`。
|
||||
|
||||
## 📝 更新日志
|
||||
|
||||
### v3.1.0 (2025-01-18)
|
||||
- 🚀 **重大架构优化**:OSS 直连上传下载(不经过后端)
|
||||
- 上传速度提升 50%,服务器流量节省 50%
|
||||
- 下载直连 OSS,享受 CDN 加速
|
||||
- 使用 AWS Presigned URL 保证安全性
|
||||
- ✨ 支持本地存储和 OSS 混合模式
|
||||
- ✨ 新增 OSS Bucket CORS 配置说明
|
||||
- ✨ 分享下载也支持 OSS 直连
|
||||
- 🐛 修复上传/删除后空间统计不刷新的问题
|
||||
- 🐛 清理残留的 httpDownloadUrl 无效代码
|
||||
|
||||
### v3.0.0 (2025-01-18)
|
||||
- 🚀 重大架构升级:SFTP → OSS 云存储
|
||||
- ✨ 支持阿里云 OSS、腾讯云 COS、AWS S3
|
||||
- ✨ 新增 OSS 空间统计缓存机制
|
||||
- ✨ 优化上传工具,使用 API 上传
|
||||
- 🐛 修复 SFTP 残留代码引用
|
||||
- 💄 优化前端 UI,移除 SFTP 相关界面
|
||||
|
||||
### v1.1.0 (2025-11-13)
|
||||
- ✨ 新增登录验证码功能
|
||||
- ✨ 新增登录防爆破保护(5次失败封锁30分钟)
|
||||
@@ -391,7 +448,7 @@ A: 默认限制 5GB,可在 Nginx 配置中修改 `client_max_body_size`。
|
||||
### v1.0.0 (2025-11-01)
|
||||
- 🎉 首个正式版本发布
|
||||
- ✨ 完整的文件管理功能
|
||||
- ✨ 双存储模式(本地/SFTP)
|
||||
- ✨ 双存储模式(本地/OSS)
|
||||
- ✨ 文件分享功能
|
||||
- ✨ 用户管理系统
|
||||
- ✨ 邮件验证和密码重置
|
||||
|
||||
Reference in New Issue
Block a user