forked from gongxuegit/tiku-backend.net
feat: add aliyun oss storage foundation
This commit is contained in:
23
README.md
23
README.md
@@ -98,6 +98,17 @@ Tiku.IntegrationTests # EF 模型/持久化约束测试
|
||||
- 当前先在小范围权限判断里落模板,后续题库筛选、权限集合、菜单/内容树投影等热路径再逐步使用。
|
||||
- 不是为了炫技替换所有 LINQ;只在明确高频、低收益分配明显的路径使用。
|
||||
|
||||
### 对象存储
|
||||
|
||||
- 旧 Nest 后端资源层使用 Node `ali-oss`,不是 Supabase Storage 专用模型。
|
||||
- 新后端使用 `AlibabaCloud.OSS.V2` 作为阿里云 OSS SDK,对齐旧版的 provider / bucket / objectKey / signed URL / HEAD metadata 语义。
|
||||
- Application 层只依赖 `IObjectStorageService`,不直接依赖阿里云 SDK;SDK 细节收敛在 Infrastructure。
|
||||
- 默认对象 key 要带租户前缀,例如 `{tenantId}/...`,避免多租户资源混放后靠人工约定隔离。
|
||||
- 上传签名前会校验 MIME allowlist、文件大小、provider 是否支持托管上传。
|
||||
- 下载时如果资源已有可信 `cdnUrl`,直接返回 provider-managed URL;否则由后端在通过业务授权后签发临时 URL。
|
||||
- 上传确认使用 OSS HEAD metadata,后续可用于校验大小、MIME、ETag、SHA256 metadata 和安全扫描状态。
|
||||
- 不再把 Supabase Storage 作为默认后端存储;如果历史数据里存在 Supabase provider,只作为迁移兼容对象处理,不作为新架构依赖。
|
||||
|
||||
## 数据库策略
|
||||
|
||||
当前数据库以 PostgreSQL 为核心能力,而不是把 PostgreSQL 当成普通 KV 存储:
|
||||
@@ -213,6 +224,18 @@ Tiku.Infrastructure/Persistence/Migrations/20260725220742_InitialSchema.cs
|
||||
- 后台 Worker 使用最小权限的应用服务,不直接绕过业务规则写库。
|
||||
- 对账、导入、批处理任务要求幂等键和可重跑设计。
|
||||
- 生产环境连接串、密钥、对象存储凭据不进入仓库。
|
||||
- OSS 凭据通过配置/环境变量/secret 注入,兼容旧版环境变量:
|
||||
- `STORAGE_DEFAULT_PROVIDER`
|
||||
- `STORAGE_DEFAULT_BUCKET`
|
||||
- `STORAGE_PUBLIC_BASE_URL`
|
||||
- `STORAGE_REQUIRE_TENANT_PREFIX`
|
||||
- `STORAGE_MAX_UPLOAD_BYTES`
|
||||
- `ALIYUN_OSS_REGION`
|
||||
- `ALIYUN_OSS_ENDPOINT`
|
||||
- `ALIYUN_OSS_ACCESS_KEY_ID`
|
||||
- `ALIYUN_OSS_ACCESS_KEY_SECRET`
|
||||
- `ALIYUN_OSS_STS_TOKEN`
|
||||
- `ALIYUN_OSS_INTERNAL`
|
||||
|
||||
## 常用命令
|
||||
|
||||
|
||||
Reference in New Issue
Block a user