文件上传
文件上传采用分片上传流程,适合大文件传输。
上传流程
- 调用
file.checkHash检查文件是否已存在(秒传) - 调用
file.initUpload初始化上传,获取fileId - 上传文件分片(根据返回的上传方式)
- 调用
file.completeUpload完成上传 - 调用
file.attach关联文件到内容
检查文件哈希(秒传)
POST
/api/trpc/file.checkHash需登录file:write如果文件已存在,直接返回文件信息,无需重复上传。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
hash | string | 是 | 文件 SHA-256 哈希(64 位十六进制) |
size | number | 是 | 文件大小(字节) |
mimeType | string | 是 | MIME 类型 |
filename | string | 是 | 文件名 |
contentType | string | 否 | 关联的内容类型 |
contentId | string | 否 | 关联的内容 ID |
初始化上传
POST
/api/trpc/file.initUpload需登录file:write| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
filename | string | 是 | 文件名 |
size | number | 是 | 文件大小(字节) |
mimeType | string | 是 | MIME 类型 |
hash | string | 否 | 文件哈希 |
contentType | string | 否 | 关联的内容类型 |
contentId | string | 否 | 关联的内容 ID |
获取上传进度
POST
/api/trpc/file.getUploadProgress需登录file:read| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
fileId | string | 是 | 文件 ID |
完成上传
POST
/api/trpc/file.completeUpload需登录file:write| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
fileId | string | 是 | 文件 ID |
uploadId | string | 否 | S3 上传 ID(分片上传时需要) |
parts | object[] | 否 | 分片信息 |
hash | string | 否 | 文件哈希 |
关联文件
POST
/api/trpc/file.attach需登录file:write| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
fileId | string | 是 | 文件 ID |
contentType | string | 是 | video / game / imagePost |
contentId | string | 是 | 内容 ID |
取消关联
POST
/api/trpc/file.detach需登录file:write| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
fileId | string | 是 | 文件 ID |
删除文件
POST
/api/trpc/file.delete需登录file:write| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
fileId | string | 是 | 文件 ID |
文件列表
POST
/api/trpc/file.list需登录file:read| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
cursor | string | 否 | 分页游标 |
limit | number | 否 | 每页数量 |
contentType | string | 否 | 内容类型筛选 |
contentId | string | 否 | 内容 ID 筛选 |
mimePrefix | string | 否 | MIME 前缀筛选(如 image/) |
获取内容关联文件
POST
/api/trpc/file.getByContent公开| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
contentType | string | 是 | video / game / imagePost |
contentId | string | 是 | 内容 ID |
存储用量
POST
/api/trpc/file.getStorageUsage需登录file:read返回已用空间和配额信息。