feat: 添加存储策略选项模型及其与策略的关系,更新相关文档
This commit is contained in:
164
models/README.md
164
models/README.md
@@ -188,11 +188,31 @@ models/
|
||||
| `dir_name_rule` | `str?` | 目录命名规则 |
|
||||
| `file_name_rule` | `str?` | 文件命名规则 |
|
||||
| `is_origin_link_enable` | `bool` | 是否开启源链接访问 |
|
||||
| `options` | `str?` | 其他选项(JSON 格式) |
|
||||
|
||||
**关系**:
|
||||
- `options`: 一对一关联 PolicyOptions
|
||||
|
||||
---
|
||||
|
||||
### 7. Object(统一对象)
|
||||
### 7. PolicyOptions(存储策略选项)
|
||||
|
||||
**表名**: `policyoptions`
|
||||
**基类**: `UUIDTableBase`
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| `id` | `UUID` | 主键 |
|
||||
| `policy_id` | `UUID` | 关联的策略(外键,唯一) |
|
||||
| `token` | `str?` | 访问令牌 |
|
||||
| `file_type` | `str?` | 允许的文件类型 |
|
||||
| `mimetype` | `str?` | MIME 类型 |
|
||||
| `od_redirect` | `str?` | OneDrive 重定向地址 |
|
||||
| `chunk_size` | `int` | 分片上传大小(字节),默认 50MB |
|
||||
| `s3_path_style` | `bool` | 是否使用 S3 路径风格 |
|
||||
|
||||
---
|
||||
|
||||
### 8. Object(统一对象)
|
||||
|
||||
**表名**: `object`
|
||||
**基类**: `UUIDTableBase`
|
||||
@@ -219,7 +239,7 @@ models/
|
||||
|
||||
---
|
||||
|
||||
### 8. SourceLink(源链接)
|
||||
### 9. SourceLink(源链接)
|
||||
|
||||
**表名**: `sourcelink`
|
||||
**基类**: `TableBase`
|
||||
@@ -233,7 +253,7 @@ models/
|
||||
|
||||
---
|
||||
|
||||
### 9. Share(分享)
|
||||
### 10. Share(分享)
|
||||
|
||||
**表名**: `share`
|
||||
**基类**: `TableBase`
|
||||
@@ -255,7 +275,7 @@ models/
|
||||
|
||||
---
|
||||
|
||||
### 10. Report(举报)
|
||||
### 11. Report(举报)
|
||||
|
||||
**表名**: `report`
|
||||
**基类**: `TableBase`
|
||||
@@ -269,7 +289,7 @@ models/
|
||||
|
||||
---
|
||||
|
||||
### 11. Tag(标签)
|
||||
### 12. Tag(标签)
|
||||
|
||||
**表名**: `tag`
|
||||
**基类**: `TableBase`
|
||||
@@ -288,7 +308,7 @@ models/
|
||||
|
||||
---
|
||||
|
||||
### 12. Task(任务)
|
||||
### 13. Task(任务)
|
||||
|
||||
**表名**: `task`
|
||||
**基类**: `TableBase`
|
||||
@@ -305,7 +325,7 @@ models/
|
||||
|
||||
---
|
||||
|
||||
### 13. Download(离线下载)
|
||||
### 14. Download(离线下载)
|
||||
|
||||
**表名**: `download`
|
||||
**基类**: `UUIDTableBase`
|
||||
@@ -332,7 +352,7 @@ models/
|
||||
|
||||
---
|
||||
|
||||
### 14. Node(节点)
|
||||
### 15. Node(节点)
|
||||
|
||||
**表名**: `node`
|
||||
**基类**: `TableBase`
|
||||
@@ -352,7 +372,7 @@ models/
|
||||
|
||||
---
|
||||
|
||||
### 15. Order(订单)
|
||||
### 16. Order(订单)
|
||||
|
||||
**表名**: `order`
|
||||
**基类**: `TableBase`
|
||||
@@ -372,7 +392,7 @@ models/
|
||||
|
||||
---
|
||||
|
||||
### 16. Redeem(兑换码)
|
||||
### 17. Redeem(兑换码)
|
||||
|
||||
**表名**: `redeem`
|
||||
**基类**: `TableBase`
|
||||
@@ -388,7 +408,7 @@ models/
|
||||
|
||||
---
|
||||
|
||||
### 17. StoragePack(容量包)
|
||||
### 18. StoragePack(容量包)
|
||||
|
||||
**表名**: `storagepack`
|
||||
**基类**: `TableBase`
|
||||
@@ -404,7 +424,7 @@ models/
|
||||
|
||||
---
|
||||
|
||||
### 18. WebDAV(WebDAV 账户)
|
||||
### 19. WebDAV(WebDAV 账户)
|
||||
|
||||
**表名**: `webdav`
|
||||
**基类**: `TableBase`
|
||||
@@ -423,7 +443,7 @@ models/
|
||||
|
||||
---
|
||||
|
||||
### 19. Setting(系统设置)
|
||||
### 20. Setting(系统设置)
|
||||
|
||||
**表名**: `setting`
|
||||
**基类**: `TableBase`
|
||||
@@ -448,52 +468,56 @@ models/
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────┐
|
||||
│ 一对一关系 │
|
||||
│ 一对一关系 │
|
||||
├─────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ Group ◄────────────────────────► GroupOptions │
|
||||
│ Group ◄────────────────────────> GroupOptions │
|
||||
│ group_id (unique FK) │
|
||||
│ │
|
||||
│ Policy ◄───────────────────────> PolicyOptions │
|
||||
│ policy_id (unique FK) │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
| 主表 | 从表 | 外键 | 说明 |
|
||||
|------|------|------|------|
|
||||
| Group | GroupOptions | `group_id` (unique) | 每个用户组有且仅有一个选项配置 |
|
||||
| Policy | PolicyOptions | `policy_id` (unique) | 每个存储策略有且仅有一个扩展选项 |
|
||||
|
||||
---
|
||||
|
||||
### 一对多关系
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||||
│ 一对多关系 │
|
||||
├─────────────────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ ┌──────► Download │
|
||||
│ │ │
|
||||
│ ├──────► Object ◄──────┬──────► SourceLink │
|
||||
│ │ │ ▲ │ │
|
||||
│ │ │ │ └──────► Share ──────► Report│
|
||||
│ Group ──────► User ───┼─────────┘ │ │
|
||||
┌──────────────────────────────────────────────────────────────────────────────┐
|
||||
│ 一对多关系 │
|
||||
├──────────────────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ ┌──────> Download │
|
||||
│ │ │
|
||||
│ ├──────> Object ◄──────┬──────> SourceLink │
|
||||
│ │ │ ↑ │ │
|
||||
│ │ │ │ └──────> Share ──────> Report │
|
||||
│ Group ──────> User ───┼─────────┘ │ │
|
||||
│ │ │ │ (自引用:parent-children) │
|
||||
│ │ ├──────► Order │
|
||||
│ │ │ │
|
||||
│ │ ├──────► StoragePack │
|
||||
│ │ │ │
|
||||
│ │ ├──────► Tag │
|
||||
│ │ │ │
|
||||
│ │ ├──────► Task ──────► Download │
|
||||
│ │ │ ▲ │
|
||||
│ │ ├──────► WebDAV │ │
|
||||
│ │ │ │ │
|
||||
│ │ └──────► UserAuthn │ │
|
||||
│ │ │ │
|
||||
│ └──────► Policy ──────► Object │ │
|
||||
│ │ │
|
||||
│ Node ───────────────┘ │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────────────────┘
|
||||
│ │ ├──────> Order │
|
||||
│ │ │ │
|
||||
│ │ ├──────> StoragePack │
|
||||
│ │ │ │
|
||||
│ │ ├──────> Tag │
|
||||
│ │ │ │
|
||||
│ │ ├──────> Task ──────> Download │
|
||||
│ │ │ ↑ │
|
||||
│ │ ├──────> WebDAV │ │
|
||||
│ │ │ │ │
|
||||
│ │ └──────> UserAuthn │ │
|
||||
│ │ │ │
|
||||
│ └──────> Policy ──────> Object │ │
|
||||
│ │ │
|
||||
│ Node ───────────────┘ │
|
||||
│ │
|
||||
└──────────────────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
| 一端 | 多端 | 外键 | 说明 |
|
||||
@@ -523,13 +547,13 @@ models/
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────┐
|
||||
│ 多对多关系 │
|
||||
│ 多对多关系 │
|
||||
├─────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ Group ◄────── GroupPolicyLink ──────► Policy │
|
||||
│ Group ◄────── GroupPolicyLink ──────> Policy │
|
||||
│ │
|
||||
│ - 一个用户组可以使用多个存储策略 │
|
||||
│ - 一个存储策略可以被多个用户组使用 │
|
||||
│ - 一个用户组可以使用多个存储策略 │
|
||||
│ - 一个存储策略可以被多个用户组使用 │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────┘
|
||||
```
|
||||
@@ -545,20 +569,20 @@ models/
|
||||
```
|
||||
┌──────────────┐
|
||||
│ Setting │
|
||||
│ (独立表) │
|
||||
│ (独立表) │
|
||||
└──────────────┘
|
||||
|
||||
┌──────────────┐
|
||||
│ Redeem │
|
||||
│ (独立表) │
|
||||
│ (独立表) │
|
||||
└──────────────┘
|
||||
|
||||
┌──────────────┐ 1:1 ┌──────────────┐
|
||||
│ Group │◄────────────►│ GroupOptions │
|
||||
│ Group │◄────────────>│ GroupOptions │
|
||||
│ │ └──────────────┘
|
||||
│ │
|
||||
│ │──────┐ M:N ┌──────────────────┐
|
||||
│ │ └──────►│ GroupPolicyLink │◄───┐
|
||||
│ │ └──────>│ GroupPolicyLink │◄───┐
|
||||
└──────┬───────┘ └──────────────────┘ │
|
||||
│ │
|
||||
│ 1:N │
|
||||
@@ -566,44 +590,44 @@ models/
|
||||
┌──────────────┐ ┌──────────────┐ │
|
||||
│ User │ │ Policy │◄───────┘
|
||||
│ │ │ │
|
||||
│ │ └──────┬───────┘
|
||||
│ │ │ 1:N
|
||||
│ │ │ │◄────────────>┌───────────────┐
|
||||
│ │ └──────┬───────┘ 1:1 │ PolicyOptions │
|
||||
│ │ │ 1:N └───────────────┘
|
||||
│ │──────────────┐ │
|
||||
└──────┬───────┘ │ │
|
||||
│ │ ▼
|
||||
│ 1:N │ ┌──────────────┐ ┌──────────────┐
|
||||
│ │ │ Object │◄────►│ Object │
|
||||
│ │ │ Object │◄────>│ Object │
|
||||
│ │ │ │ │ (children) │
|
||||
│ │ │ │ └──────────────┘
|
||||
├──────────────────────┼─┤ │
|
||||
│ │ └──────┬───────┘
|
||||
│ │ │
|
||||
│ │ │ 1:N
|
||||
│ │ ├─────────────►┌──────────────┐
|
||||
│ │ │ │ SourceLink │
|
||||
│ │ │ 1:N ┌──────────────┐
|
||||
│ │ ├─────────────>│ SourceLink │
|
||||
│ │ │ └──────────────┘
|
||||
│ │ │
|
||||
│ │ │
|
||||
│ │ │ 1:N
|
||||
│ │ └─────────────►┌──────────────┐
|
||||
│ │ │ Share │
|
||||
│ │ │ │─────► Report
|
||||
│ │ │ 1:N ┌──────────────┐
|
||||
│ │ └─────────────>│ Share │─────> Report
|
||||
│ │ └──────────────┘
|
||||
│ │
|
||||
│ │
|
||||
├──► Download ◄────────┼───────────────────────── Task
|
||||
├──> Download ◄────────┼───────────────────────── Task
|
||||
│ ▲ │
|
||||
│ │ │
|
||||
│ │ │
|
||||
│ └─────────────┼─────────────────────── Node
|
||||
│ │
|
||||
├──► Order │
|
||||
├──> Order │
|
||||
│ │
|
||||
├──► StoragePack │
|
||||
├──> StoragePack │
|
||||
│ │
|
||||
├──► Tag │
|
||||
├──> Tag │
|
||||
│ │
|
||||
├──► WebDAV │
|
||||
├──> WebDAV │
|
||||
│ │
|
||||
└──► UserAuthn │
|
||||
└──> UserAuthn │
|
||||
│
|
||||
│
|
||||
```
|
||||
@@ -667,6 +691,12 @@ class AvatarType(StrEnum):
|
||||
| `GroupOptionsBase` | 用户组选项基础字段 |
|
||||
| `GroupResponse` | 用户组响应 |
|
||||
|
||||
### 存储策略相关
|
||||
|
||||
| DTO | 说明 |
|
||||
|-----|------|
|
||||
| `PolicyOptionsBase` | 存储策略选项基础字段 |
|
||||
|
||||
### 对象相关
|
||||
|
||||
| DTO | 说明 |
|
||||
|
||||
Reference in New Issue
Block a user