Hi everyone! I need help with a video file transfer workflow from OneDrive to bunny.net. I previously implemented this successfully in Make.com, but due to its 500MB file size limitation, I’m now trying to replicate the workflow in n8n.
Current workflow structure:
Trigger Node: Monitors OneDrive for new file creation
Filter Node: Only allows video/mp4 files to pass through
Download Node: Downloads the file and converts it to binary data
HTTP Request Node: Creates an entry in bunny.net server
HTTP Request Node: Attempts to upload the binary data to the created bunny.net entry
The issue I’m encountering is with the final HTTP Request node. It seems I need to have the binary data available in the node preceding the final upload request. Has anyone successfully implemented a similar file upload workflow in n8n?
Basically it can can help you manage and pass binary data through your workflow without needing the node that provides the binary data to be directly connected to the HTTP Request node.
Here’s how it works:
Store Binary Data: After you download the file and have it in binary format, use a Set node to store this binary data in a named property. This allows you to reference this data later in your workflow.
Access Binary Data: In the HTTP Request node where you want to upload the file, you can access this stored binary data by specifying the correct binary property name. (it should be the same name you have used in set node to set it to binary file).
Actually, in n8n, we can only set binary values if we enable the “Include Other Fields” option and select all fields. However, this approach may not be ideal for the scenario that is mentioned earlier.
Apologies for not bringing that up earlier. Unfortunately, there isn’t a direct way to do this.
That said, there is an alternative workaround.
Problem:
How can we pass a binary file to a node when the incoming data isn’t the file itself, but the file is stored or processed by another node earlier in the workflow?
In here actually I have tried to replicate the scenario which is shared earlier in the post (see image attached by the Daniel_Elizalde above.)
In this workflow, I’ve used the Merge node to combine the outputs of previous nodes. This allows us to ensure that the file, which was processed or stored by an earlier node, is available right before the node where it needs to be uploaded. The Merge node effectively synchronizes the output, providing both the data from the earlier node and the binary file for further processing.
In this particular case, we only have one node between the node where the file is created and the node where the file needs to be uploaded. So, I used the Merge node, which ensures that both the output of the previous node and the binary file are available right before the upload node.
However, in other scenarios where there are multiple nodes (e.g., 3 to 4 nodes) between the file creation and the upload step, you would still need to use the Merge node. In such cases, you would merge the binary file with the output of the exact node just before the upload node, ensuring that both the file and the required data are available for the upload process.