أنا أستخدم n8n v2.34.6 (Self Hosted) في Docker على Ubuntu 24.04. أحاول حفظ ملف (تم تنزيله من Telegram API) باستخدام عقدة “Read/Write Files from Disk” مع العملية “Write File to Disk”. ومع ذلك، أتلقى دائماً الخطأ:
لكن أتلقى الخطأ بالفعل. حاولت مسارات مختلفة: /data، /tmp/references، /home/node/.n8n. لم ينجح أي منها. أضفت N8N_ALLOW_WRITE_TO_DISK=true و N8N_ALLOW_LIST_PATH. بلا جدوى.
ما الذي قد يكون السبب؟ كيف يمكنني السماح للعقدة بالكتابة إلى القرص؟ هل هناك أي إعدادات إضافية أو قيود أمان في v2.34.6؟
تحتاج إلى تغيير N8N_ALLOW_LIST_PATH إلى المجلد الفعلي الذي تقصده لتخزين الملفات. بما أنك قمت بالفعل بتثبيت مجلد على /data، فهذا هو المكان المثالي.
حدّث متغير البيئة في أمر Docker run الخاص بك بهذه الطريقة:
غيّر هذا: -e N8N_ALLOW_LIST_PATH=/home/node/.n8n
إلى هذا: -e N8N_ALLOW_LIST_PATH=/data
بعد إعادة تشغيل الحاوية الخاصة بك بهذا التغيير، ستتمكن من كتابة الملفات إلى أي مسار داخل مجلد /data (على سبيل المثال، /data/references/test.ico)، وسيتم حفظها بشكل صحيح في مجلد /root/n8n_storage على جهازك.
مرحباً @Wvolcha أهلاً وسهلاً! N8N_ALLOW_WRITE_TO_DISK و N8N_ALLOW_LIST_PATH ليستا متغيرات n8n، لذا لا تؤثر أي قيم معينة عليهما. المتغير الذي تقرأه عُقد الملفات فعلياً هو N8N_RESTRICT_FILE_ACCESS_TO، والذي يستخدم القيمة الافتراضية ~/.n8n-files منذ الإصدار 2.0:
-e N8N_RESTRICT_FILE_ACCESS_TO=/data
افصل بين عدة مجلدات بـ ; وليس بفاصلة. /home/node/.n8n يبقى محجوباً بغض النظر عن قائمة السماح التي تحددها، فهو مجلد الحالة الخاص بـ n8n. يجب أن يكون مجلد المضيف مملوكاً لمستخدم node أيضاً، لذا قم بتشغيل chown -R 1000:1000 /root/n8n_storage قبل إعادة إنشاء الحاوية.
مرحباً @Anshul_Namdev، شكراً جزيلاً لك! لقد غيرت أمر Docker الخاص بي واستخدمت:
bash
-e N8N_RESTRICT_FILE_ACCESS_TO=/data
بدلاً من المتغيرات غير الموجودة. كما قمت بتشغيل chown -R 1000:1000 /root/n8n_storage وقمت بتثبيت الحجم. عقدة Read/Write Files from Disk تعمل الآن بشكل مثالي وتحفظ الملفات على /data.
أقدر حقاً الشرح الواضح — بالضبط ما كنت أحتاجهشكراً لك!