mirror of
https://github.com/kuaifan/dootask.git
synced 2026-08-04 11:59:07 +00:00
- 新增 api/upload/{init,chunk,merge} 入口与 ChunkUpload 模块(5MB 分片、3 并发、Redis 状态机)
- 5 场景接入:文件柜 / 聊天 / 任务附件 / 头像&系统图片 / 编辑器粘贴
- 秒传:同用户同 hash 复用 FileContent 物理文件,零传输
- 续传:Redis + localStorage 双索引,24h TTL
- 与老接口对齐:pid 锁、≤300 上限、webkit_relative_path 目录递归、overwrite 替换语义
- init 阶段读 file_upload_limit 拦截超限,避免传完分片才报错
- DeleteTmpTask 加 tmp_chunks case 兜底清理 24h 未合并目录
- files 表新增 hash 列(migration)
- 前端 chunkedUpload wrapper:主线程 spark-md5 流式 + 指数退避重试
- ai-kb 同步:upload / file-upload-limit / upload-size-limit 三个 chunk
2.5 KiB
2.5 KiB
id, title, type, feature, scope, locale, aliases, prerequisites, related_tools, related_pages, negative, last_verified
| id | title | type | feature | scope | locale | aliases | prerequisites | related_tools | related_pages | negative | last_verified | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| system-setting.file-upload-limit.howto | 单文件上传大小限制 | howto | system-setting | admin | zh |
|
|
|
v1.8.45 |
单文件上传大小限制
入口
桌面端:左上角头像 →「系统设置」→「系统设置」标签 →「其他设置」→「文件上传限制」。
字段名:file_upload_limit,整数,单位 MB,默认留空(前端 placeholder 显示「默认 1G」)。
生效范围
后端 Base::upload / Base::uploadFromPath 在每次接收上传时都会读取该值,作用于:
- 聊天消息中发送的文件 / 图片附件
- 任务详情里的附件上传
- 「文件」应用中的文档上传
- 各种自定义上传入口(凡是走
Base::upload的接口)
逻辑:调用方未显式传 size 参数时,先取 file_upload_limit;为空则按 1024 MB(1G)兜底;超过则报错 文件大小超限,最大限制:N KB。
与分片上传的关系
- 前端 ≥ 10MB 自动走分片上传(单分片 5MB),跟系统设置的"单文件上限"是两件事
- 提高
file_upload_limit后,分片上传可以突破老的 1G 限制(每个分片远小于底层 PHP/Nginx/Swoole 限制) - 例如填
5120(5G)后,5G 视频可通过分片上传完成(受磁盘 / 内存等部署能力约束)
字段默认值
| 字段 | 默认 | 单位 |
|---|---|---|
file_upload_limit |
空(按 1G 兜底) | MB |
操作步骤
- 进入「系统设置」→「系统设置」→「其他设置」
- 在「文件上传限制」输入框填正整数(如
100= 100MB)或留空 - 「提交」保存,立即生效
不支持
- 不区分图片 / 视频 / 文档:所有类型走同一阈值
- 不能按文件后缀黑白名单(黑白名单走「文件设置」标签,不在这里)
- 留空只是"应用层不限制",仍受 Nginx / PHP 等 web 服务器层面的上传上限制约