External storage#
Feature availability
- ใช้ได้เฉพาะ Self-hosted Enterprise plans
- ถ้าอยากใช้บน Cloud Enterprise ติดต่อ n8n
n8n สามารถเก็บ binary data ที่ workflow สร้างไว้ภายนอกได้ ฟีเจอร์นี้เหมาะกับคนที่ไม่อยากเก็บไฟล์ใหญ่ๆ ไว้ใน filesystem
ในอนาคต n8n จะรองรับ external storage สำหรับข้อมูลประเภทอื่นด้วย
Storing n8n's binary data in S3#
n8n รองรับ AWS S3 เป็น external store สำหรับ binary data ที่ workflow สร้าง คุณสามารถใช้ S3-compatible อื่นๆ เช่น Cloudflare R2, Backblaze B2 ได้ แต่ n8n ยังไม่รองรับอย่างเป็นทางการ
Enterprise-tier feature
ต้องมี Enterprise license key เพื่อใช้ external storage ถ้า license หมดอายุและยังใช้ S3 mode instance จะอ่านจาก S3 ได้แต่เขียนไม่ได้
Setup#
สร้างและตั้งค่า bucket ตาม AWS documentation ใช้ policy นี้ (เปลี่ยน <bucket-name>
เป็นชื่อ bucket ของคุณ):
1 2 3 4 5 6 7 8 9 10 11 |
|
ตั้ง bucket-level lifecycle configuration ให้ S3 ลบ binary data เก่าอัตโนมัติ n8n จะไม่ลบ binary data เองถ้าใช้ S3 ต้องตั้ง lifecycle นี้เอง (ถ้าไม่อยากเก็บถาวร)
เมื่อสร้าง bucket เสร็จ คุณจะได้ host, bucket name, region, access key ID และ secret access key ตั้งค่าใน environment ของ n8n:
1 2 3 4 5 |
|
No region
ถ้า provider ไม่ต้องใช้ region ให้ตั้ง N8N_EXTERNAL_STORAGE_S3_BUCKET_REGION
เป็น 'auto'
บอก n8n ให้เก็บ binary data ใน S3:
1 2 |
|
Auth autodetection
ถ้าอยากให้ n8n ตรวจ credentials S3 อัตโนมัติ ให้ตั้ง N8N_EXTERNAL_STORAGE_S3_AUTH_AUTO_DETECT
เป็น true
จะใช้ credential provider chain ของ AWS
restart server เพื่อโหลด config ใหม่
Usage#
หลังเปิด S3 แล้ว n8n จะอ่าน/เขียน binary data ใหม่ไปที่ S3 bucket โดยใช้ format นี้:
1 |
|
n8n จะยังอ่าน binary data เก่าจาก filesystem ถ้า filesystem
ยังอยู่ใน N8N_AVAILABLE_BINARY_DATA_MODES
ถ้าเปลี่ยนจาก S3 กลับไป filesystem instance จะยังอ่านข้อมูลใน S3 ได้ถ้า s3
ยังอยู่ใน N8N_AVAILABLE_BINARY_DATA_MODES
และ credential S3 ยังใช้ได้
การล้างข้อมูล Binary (Binary data pruning)
การล้างข้อมูล Binary จะทำงานตามโหมดข้อมูล Binary ที่ใช้งานอยู่ในปัจจุบัน ตัวอย่างเช่น หาก Instance ของคุณเคยเก็บข้อมูลใน S3 แล้วคุณเปลี่ยนไปใช้โหมด Filesystem ในภายหลัง n8n จะล้างข้อมูล Binary เฉพาะใน Filesystem เท่านั้น สิ่งนี้อาจมีการเปลี่ยนแปลงในอนาคต