FTP Download Binary; access to Binary in memory to upload on S3 (with http node)

Describe the problem/error/question

What is the error message (if any)?

This operation expects the node’s input data to contain a binary file ‘SSO.docx’, but none was found [item 0]

Make sure that the previous node outputs a binary file

Please share your workflow

Node is failing when uploading the binary.
Why is not shared?

The source is loading into the memory - and can be downloaded successfully.

(Select the nodes on your canvas and use the keyboard shortcuts CMD+C/CTRL+C and CMD+V/CTRL+V to copy and paste the workflow.)

Share the output returned by the last node

Information on your n8n setup

  • n8n version:
    Running version [email protected]
    Cloud

  • Database (default: SQLite):

  • n8n EXECUTIONS_PROCESS setting (default: own, main):
    own

  • Running n8n via (Docker, npm, n8n cloud, desktop app):
    Cloud: Enterprise

  • Operating system:

Hello @Daniel_Schroeder

Input field name is the name of the binary property, not the filename. In your case it is just ‘data’ (not as expression)

By the way, why are you using HTTP node for uploading to S3, if there is an AWS S3 node for that?

Hi @barn4k

as much we would like to use the std S3 node - which is not working, as it forces authentication - while we are working with a predefined authenticated URL from AWS. Hence the standard node is “failing us”

Can you advise, on how to use the n8n S3 node with a presigned URL?

Note, we tried various iterations.

Another one, was by Using the Extract from File Node and then use this to upload -

which provides this error:

The latest error is on the workflow at the bottom - the intial one was from the upper one.

Am hesitant sharing the workflow itself, as unsure what data might be exposed from our credentials and servers.

When I run the same structure against the G Drive std Node, it works just fine.

When just doing a plain upload with a JSON body:
{{ $(‘FTP7’).item.binary[“data”] }}
No file is uploaded.

Hey Daniel,

Instead of {{ $(‘FTP7’).item.binary[“data”] }} you could try out setting `{{ $(‘FTP7’).item.binary[“data”].data }} .

Have you tried setting the Content-Type Header when uploading via API? You could also try that with Body Content Type=n8n binary file.

Actually, it seems it’s not possible to access the data property anymore…

Solution that worked, using this parameter:

{{ $(‘FTP7’).item.binary[“data”].data }}

While the node, needs to be the immediate, in order to have the binaries in the cache.
I did achieve this, by merging the actual node and have a direct connection from the ftp download node - then this is working.

1 Like