Help needed: OneDrive to bunny.net video upload workflow - Binary data handling issue

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:

  1. Trigger Node: Monitors OneDrive for new file creation
  2. Filter Node: Only allows video/mp4 files to pass through
  3. Download Node: Downloads the file and converts it to binary data
  4. HTTP Request Node: Creates an entry in bunny.net server
  5. 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?

Technical details:

  • Running n8n self-hosted
  • File type: video/mp4
  • Source: OneDrive
  • Destination: bunny.net

Any guidance or alternative approaches would be greatly appreciated. Thank you!

It looks like your topic is missing some important information. Could you provide the following if applicable.

  • n8n version:
  • Database (default: SQLite):
  • n8n EXECUTIONS_PROCESS setting (default: own, main):
  • Running n8n via (Docker, npm, n8n cloud, desktop app):
  • Operating system:

Hey @Daniel_Elizalde ,
You can use Set node for this.

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:

  1. 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.
  2. 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).

Ya! This can probably solve your issue.!!

Hi, Sudhanshu_Sharma can you explain how to do this? I have trouble to store the binary data in the set node

Hi @timautomation,

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.