Hi @MutedJam (Tom), thanks for your fast reply.
I understand, on both cases you read the whole “binary object” in memory, process, and write.
For the binary excel file, I understand and agree.
For the text file, I understand and will initially use like this. Nevertheless, I think there’s room for improvement:
Imagine a log file 1 GB long. Filesystems (and javascript via the filesystems) give options to “append lines” to files. Noone working purely on a bash script would “open the 1GB file” + “add the line in RAM” + “write the whole file”. Everyone would do a echo ${WHATEVER} >> ${FILE_NAME} and the only data object seen by our script is ${WHATEVER}.
Let’s imagine this:
- For Google Drive we have a node that is able to do any operation on there. But if there was not this node, playing both with the HTTP webhook node + HTTP request node we can model “anything” that is based on REST.
Could we implement a couple of “filesystem nodes” that act as a “proxy” to the basic i/o operations in the filesystem?
One trigger node (maybe named “Filesystem Trigger”) that simulates any kind of stat() we can do to the underlying filesystem (change permissions, rename, deletion, update of a directory or file, etc.)
The other node would be some kind of a “filesystem proxy” (maybe named “Filesystem”) able to work with entities “Folder”, “File”, “Symlink” and do basic operations like “Create”, “Delete”, “Change owner”, “Change permissions” and for the files “Open for reading binary”, “Open for reading text”, “Open for writing binary”, “Open for writing text”, “Open for appending binary”, “Open for appending text”, “Seek” (to place the cursor somewhere like the C function fseek(), “Read”; “Write”, etc.
I have only had to spend 48h to understand that n8n is “the future”, I’ve started to love it and I think we alltogether should make it the “de facto automation standard” in any company in the world.
I deeply think those 2 nodes would greatly enhance the n8n power and would always be used as a “fallback”, ie: equivalently to the “http webhook” + “http request” => ie: When there’s not a specific node that does what you want.
Does it make any kind of sense?