在dify中导入超100mb大文件需通过docker挂载本地目录:确认api和worker容器运行,将文件放入无中文空格的绝对路径(如d:/dify-import/files),在docker-compose.yml中为api服务添加只读挂载-volumes: - d:/dify-import/files:/app/api/dify/import_files:ro,重启容器后调用api提交文件路径完成导入。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在Dify中导入超100MB的PDF或Word文档时,网页上传常因超时失败或卡死。通过Docker容器挂载本地路径,可绕过Web界面限制,让Dify后端直接读取磁盘文件,实现秒级导入。
确认Dify容器运行状态并定位服务名称
打开 PowerShell,执行 docker compose ps 查看当前服务列表。确保 api 和 worker 两个容器状态为 running,这是文件导入功能依赖的核心服务。
若输出中缺少 worker 容器,请先检查 dify/docker/docker-compose.yml 是否启用了 worker 服务(默认开启),再执行 docker compose up -d 启动全部服务。
准备待导入文件并创建挂载目录
将你要导入的大文件(如 report.pdf、manual.docx)统一放入一个本地文件夹,例如 D:dify-importiles。
该路径必须是**绝对路径**,且不能包含中文、空格或特殊符号(如 我的文档 或 D:dify data 会触发挂载失败)。Windows路径需使用正斜杠 / 或双反斜杠 \ 表示,例如 D:/dify-import/files。
修改 docker-compose.yml 添加 volume 挂载
用文本编辑器打开 D:difydockerdocker-compose.yml,找到 services.api.volumes 区块(若不存在则新建)。
在 api 服务下添加一行挂载配置:
- D:/dify-import/files:/app/api/dify/import_files:ro
注意:【ro 表示只读挂载,不可省略】。若写成 rw,Dify worker 进程可能因权限问题拒绝访问,导致后台任务报错 Permission denied。
完整片段示例如下:
services: api: volumes: - ./config:/app/config - D:/dify-import/files:/app/api/dify/import_files:ro
重启 api 与 worker 容器使挂载生效
在 D:difydocker 目录下执行:
docker compose restart api worker
等待约 15 秒,再次运行 docker compose ps 确认两个容器状态变为 healthy 或至少 running。此时挂载已就绪,无需重建镜像或重装Dify。
通过 API 触发文件导入任务
打开浏览器,访问 http://localhost:8080/api-docs 进入 Swagger 文档界面。
找到 POST /v1/knowledge-bases/{kb_id}/document/batch 接口 → 点击 Try it out。
填写参数:
-
kb_id:填入你已创建的知识库 ID(可在知识库详情页 URL 中获取,形如http://localhost:8080/kb/abc123中的abc123) -
body:粘贴以下 JSON(文件名必须与你放在D:/dify-import/files下的实际名称一致):
{ "file_paths": ["/app/api/dify/import_files/report.pdf"]}
点击 Execute。响应码为 200 即表示任务已提交成功,Dify worker 将立即开始解析该文件。











