Sync: add rightsizing notes
This commit is contained in:
@@ -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)**
|
||||
|
||||
|
||||
Reference in New Issue
Block a user