Sync: add rightsizing notes

This commit is contained in:
2026-04-24 16:23:54 +08:00
parent cac9d11fef
commit 6bd1759da8
5 changed files with 99 additions and 5 deletions

View File

@@ -202,8 +202,37 @@ Fonrey 是一套面向房产经纪公司的 B2B SaaS 平台,采用 `django-ten
- 触发方式:管理员手动触发,选择目标租户 + 导出模块 + 格式
- 异步执行Celery 任务任务状态实时刷新Pending → In Progress → Done / Failed
- 文件安全:导出文件存储于 Cloudflare R2生成带签名的下载 URL有效期 24 小时
- 导出包内容结构化数据CSV / JSON / SQL Dump+ 文件资产 URL 清单,**不打包文件实体**
- 导出模块选项:客户数据 / 房源数据 / 交易记录 / 系统配置 / 全量
- 导出包存储:压缩后存于 Cloudflare R2 临时目录,生成带签名下载链接,有效期 24 小时
**文件资产(图片/附件)的导出处理规则**
> **设计决策**v1 不打包文件实体,文件以 CDN 持久 URL 形式内嵌于导出数据中。
> 依据R2 Bucket 配置为 public read文件通过 Cloudflare CDN 对外提供持久访问;
> 在租户账号未被硬删除的情况下CDN URL 始终有效,满足合规/审计场景需求。
> 迁移场景(需要文件实体)走"完整备份"流程,不走"数据导出"流程。
各导出格式的文件字段表达方式:
| 导出格式 | 图片字段示例 | 附件字段示例 |
|---------|------------|------------|
| CSV | `photos` 列:多个 CDN URL 以英文分号分隔 | `attachments` 列:`文件名\|CDN URL` 以分号分隔 |
| JSON | `"photos": [{"url": "https://cdn.../xxx.jpg", "filename": "封面.jpg", "created_at": "..."}]` | `"attachments": [{"url": "...", "filename": "合同.pdf"}]` |
| SQL Dump | 文件元数据表原样导出,`file_url` 字段为 CDN URL | 同左 |
导出包内附说明文件(`README.txt`),注明:
> "图片与附件以 Cloudflare CDN 链接形式提供,链接在账号有效期内持续可访问。账号注销后链接将在 30 天冷静期结束时失效。如需迁移文件本体请联系平台支持发起完整数据备份Backup。"
**数据导出 vs 完整备份的边界**
| 维度 | 数据导出Export | 完整备份Backup |
|------|------------------|-----------------|
| 用途 | 合规审计、数据核查、业务分析 | 灾难恢复、租户迁移 |
| 文件资产 | CDN URL 清单,不含文件实体 | 含 R2 文件实体(完整同步) |
| 完成时间 | 分钟级 | 小时级(取决于文件总量) |
| 触发方式 | 运营人员手动触发 | 手动触发 / 系统自动触发(升级前) |
| 存储成本 | 极低(仅压缩包) | 较高(完整文件副本) |
**数据备份Snapshot**