From 370ec1b9eb106c33ac889e5ceb3b5dcdaaa8b143 Mon Sep 17 00:00:00 2001 From: zly <644706215@qq.com> Date: Mon, 8 Dec 2025 10:49:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=B8=8A=E4=BC=A0=E7=A4=BA?= =?UTF-8?q?=E4=BE=8B=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 55 ++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 44 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 1d2640d..4f10f1f 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ └────┬───┘ └─────────┘ └────────┘ │ ┌────▼────┐ - │ MinIO │ ← 内网存储 + │ RustFS │ ← 内网存储 │ (内网) │ └─────────┘ ``` @@ -53,6 +53,8 @@ | **主站** | `https://amiap.hzau.edu.cn/` | 自动跳转到 /group/ (302) | ✅ | | **课题组网站** | `https://amiap.hzau.edu.cn/group/` | Vue.js 前端 | ✅ | | **Supabase Storage** | `https://amiap.hzau.edu.cn/supa/storage/v1/` | 文件上传下载 API | ✅ | +| **TUS 大文件上传** | `https://amiap.hzau.edu.cn/supa/storage/v1/upload/resumable` | 断点续传上传 | ✅ | +| **上传演示页面** | `https://amiap.hzau.edu.cn/upload-demo/upload.html` | 前端上传界面 | ✅ | | **Supabase API** | `https://amiap.hzau.edu.cn/supa/` | Auth/REST/Realtime | ✅ | | **ABM 数据库** | `https://amiap.hzau.edu.cn/ABM/` | WebSocket 项目 | ✅ | | **Derper** | `https://amiap.hzau.edu.cn/derp` | Tailscale DERP | ✅ | @@ -166,11 +168,13 @@ http://100.64.0.2:9001 (MinIO Console) ### 关键特性 -✅ **安全隔离**: MinIO 不暴露到公网,仅通过内部网络访问 -✅ **统一入口**: 所有公网文件访问通过 Supabase Storage API -✅ **权限控制**: 通过 Supabase RLS 实现细粒度权限管理 -✅ **内网管理**: 管理界面仅 Tailscale VPN 可访问 +✅ **安全隔离**: MinIO 不暴露到公网,仅通过内部网络访问 +✅ **统一入口**: 所有公网文件访问通过 Supabase Storage API +✅ **权限控制**: 通过 Supabase RLS 实现细粒度权限管理 +✅ **内网管理**: 管理界面仅 Tailscale VPN 可访问 ✅ **根路径重定向**: 自动跳转到课题组网站 +✅ **TUS 断点续传**: 大文件上传支持断点续传(已修复) +✅ **HTTPS 安全传输**: 所有上传通过 HTTPS,无混合内容问题 ## 🔐 MinIO 访问 @@ -225,7 +229,9 @@ response = requests.get( │ ├── docker-compose.yml # Traefik 网关 + Derper │ ├── .gitignore # Git 忽略规则 │ ├── README.md # 本文档(完整指南) -│ └── ARCHITECTURE_SUMMARY.md # 架构总览(已整合) +│ ├── ARCHITECTURE_SUMMARY.md # 架构总览(已整合) +│ ├── SUPABASE_STORAGE_SUCCESS_SUMMARY.md # 🔥 Storage + TUS 上传系统修复总结 +│ └── test-supa-tus.sh # TUS 上传功能测试脚本 │ ├── 📁 docs/ # 部署策略文档 │ ├── strategy-1-path-prefix.md # 路径前缀方案(当前使用) @@ -233,10 +239,11 @@ response = requests.get( │ ├── strategy-3-hybrid.md # 混合方案 │ └── strategy-comparison-report.md # 策略对比分析 │ -├── 📁 supabase-stack/ # 🔥 Supabase 后端服务 +├── 📁 supabase-stack/ # 🔥 Supabase 后端服务 + 修复后的存储系统 │ ├── docker-compose.yml # 核心服务(PostgreSQL, Auth, REST, etc.) │ ├── docker-compose.s3.yml # MinIO 对象存储(内网) │ ├── .env # 环境变量和凭证 +│ ├── volumes/api/kong.yml # ✅ 修复后的 Kong 路由配置(单一路由) │ ├── README_CN.md # 中文使用指南 │ ├── README_STORAGE.md # Storage 对象存储指南 │ ├── MINIO_GUIDE.md # MinIO S3 完整使用指南 @@ -245,10 +252,14 @@ response = requests.get( │ │ ├── OPERATIONS_GUIDE.md # 运维指南 │ │ ├── VUE_API_INTEGRATION.md # Vue 集成教程 │ │ └── FINAL_ARCHITECTURE_MINIO_INTERNAL.md # MinIO 内网化详细说明 -│ └── examples/ # 示例代码 -│ ├── storage_client.py # Python 客户端 -│ ├── storage_client.js # JavaScript 客户端 -│ └── test_https_storage.py # 测试脚本 +│ └── examples/ # 🔥 上传演示和测试文件 +│ ├── upload.html # ✅ 完整的上传界面(支持断点续传) +│ ├── tus.min.js # TUS 客户端库 +│ ├── supabase.js # Supabase 客户端库 +│ ├── storage_client.py # Python 完整客户端 +│ ├── storage_client.js # JavaScript 完整客户端 +│ ├── test_https_storage.py # 测试脚本 +│ └── test_tus_direct.py # TUS 直接上传测试 │ └── 📁 web/ # Web 应用项目 ├── redirect-root/ # 根路径重定向(到 /group/) @@ -651,6 +662,28 @@ await client.uploadFile('bucket', fileObject, 'uploads/photo.jpg'); const url = await client.createSignedUrl('bucket', 'uploads/photo.jpg', 3600); ``` +## 邮箱配置 + +1) 阿里云 DirectMail(DM) + +面向事务邮件 + 批量邮件的托管发送服务,不用自建邮件服务器。 + +适合作为 Supabase Auth 的 SMTP 后端。 + +2) 腾讯云 SES(Simple Email Service) + +支持控制台 / API / SMTP 三种发送方式。 + +官方也提供 SMTP 服务地址与端口说明(含 SSL 465)。 + +3) SendCloud(国内老牌事务邮件平台) + +明确提供 SMTP + API 接入模式,主打国内投递与开发者场景。 + +4) SUBMAIL + +提供 SMTP 相关能力与 API 体系(文档中有 SMTP API 机制说明)。 + --- ## 🎯 最佳实践