『n8n』一招解决“无法读写本地文件”
点赞 + 关注 + 收藏 = 学会了
整理了一个n8n小专栏,有兴趣的工友可以关注一下 👉 《n8n修炼手册》
不管是在电脑还是 NAS 通过 Docker 部署 n8n,环境变量没配置好的话,使用 Read/Write Files from Disk 节点「读取本地本地」或者「保存文件到本地」,有可能出现这个报错。

这是 Docker + n8n 文件系统权限/路径隔离 的经典问题,不是 n8n 节点用错,而是容器只能访问被允许的目录。
⚠️⚠️⚠️
想解决这个问题,首先要将你 n8n 上已有的工作流等数据找个地方保存好。因为要改环境变量,有可能会丢失数据。
⚠️⚠️⚠️
在电脑用 Docker 部署
打开 Docker,首先要在 Containers 里删掉部署好的 n8n。

然后到 Images,假设你没删掉 n8n 镜像的话,重新点击一下运行按钮。

删掉镜像了就重新拉一遍吧。可以参考《『n8n』环境搭建》
点击运行按钮后,需要添加在 Volumes 里添加一项(下图红框)。

在你的电脑,找个位置创建要给文件夹。
- 上图红框的
Host path这项就填入你在电脑创建的文件夹的绝对路径。 Container path这项填入/home/node/.n8n-files,必须是这个值!一个字一个符号都不能少!
然后点击“Run”按钮(弹窗右下角蓝色底色那个按钮)。
之后再浏览器输入 localhost:5678 就能运行 n8n 了。
接下来使用 Read/Write Files from Disk 节点读写文件,都是指向你刚刚在电脑创建的那个文件夹。

比如我的 /home/node/.n8n-files 指向了 文稿/n8n-data 这个文件夹,里面有一个 hello.txt 文件。
在 n8n 里使用 Read/Write Files from Disk 节点时,File(s) Selector 项需要这么写:
/home/node/.n8n-files/hello.txt

可以看到文件读取成功了。
记住记住!用法是这样的,别问为什么⬇️⬇️⬇️
/home/node/.n8n-files/文件名.后缀
在绿联 NAS 部署
如果你是在 NAS 上部署 n8n,通常使用 Docker 部署的吧~
不管你是用群晖还是其他牌子的NAS,如果使用新建项目,用是 yaml 拉镜像。
services:
n8n:
image: n8nio/n8n:latest # 为了汉化成功,这里需要指定镜像版本号
container_name: n8n
ports:
- 5678:5678
volumes:
- n8n:/home/node/.n8n # 冒号前面映射n8n文件夹绝对路径
- n8n-files:/home/node/.n8n-files # 冒号前面映射n8n-files文件夹绝对路径
restart: unless-stopped
那么 yaml 的代码必须在 volumes 里加一项 - n8n-files:/home/node/.n8n-files。冒号前面的 n8n-files 是允许 n8n 读写文件的文件夹的绝对路径。
如果你是使用《『NAS』不止娱乐,NAS也是生产力,在绿联部署AI工作流工具-n8n》里提到的方法,在 Docker 的「镜像」模块里搜索 n8n 下载部署的话,需要这么做。
我用绿联 NAS 举例,其他品牌的 NAS 操作方法大同小异。
在 Docker 的「容器」里找到 n8n,停止运行。
然后编辑它。

在 NAS 的「文件管理」里创建一个文件夹,用来给 n8n 读写文件使用的。
然后在「编辑容器」的「存储空间」里添加一项 /home/node/.n8n-files 指向那个文件夹,提供“读写”权限,如下图红框所示。

点击“保存”按钮,然后运行项目。
我在 NAS 的 n8n-files 文件夹里准备了一个 雷猴世界.txt 文件。

在 n8n 里,使用 /home/node/.n8n-files/雷猴世界.txt 这个路径就能读取到上面这个文件了。

同样,也是这个格式:
/home/node/.n8n-files/文件名.后缀
以上就是本文的全部内容啦,想了解更多n8n玩法欢迎关注《n8n修炼手册》👏
如果你有 NAS,我非常建议你在 NAS 上部署一套 n8n,搞搞副业也好,帮你完成工作任务也好 《『NAS』不止娱乐,NAS也是生产力,在绿联部署AI工作流工具-n8n》
点赞 + 关注 + 收藏 = 学会了

浙公网安备 33010602011771号