Hi
I am trying to see if there is a way for me to get a direct S3 file URL link and use that in n8n to download the file into memory so I can then send it to a 3rd party API endpoint. I was hoping to use the download a file node but it wants actual s3 bucket name and credentials set, whereas I wanted to just use the S3 URL.
If I use a HTTP request I get an output / input just called “data” which seems to have a the filename, the URL, etc but a “download” button at the bottom. Ideally what I want is that when its automated, it would automatically pull this file down into a field which I can then use in the next http request to push out to an API endpoint. Is this possible and if so, how? Any help would be appreciated. Thanks.
Hi @atiq.rehman,
Yes this is 100% correct. When you see the download button in the n8n editor, this means the file did download via the url and is in the binary format. You can now decide whether you want to use the binary in the next http rest call or convert it to base64 string if the api does not support binary using this node:
If you send me your workflow in a code block here with the http call you want to make, I can help you complete the workflow
Thanks Wouter - so what I tried to do was use {{data}} as the value for a field called audio_file which is sent as a body in a API call to a API endpoint. However the receiving side just says its not an audio file. The http request I do before is a GET sent to the s3 mp3 file URL. I then get back the “data” field which looks like this:
But if I send {{data}} I get the API error that its not a file.
Just wondering if you can advise how to overcome that. Trying to do it myself as much as possible without getting someone else to do it for me - (for now anyway) ![]()
Hi, never mind - some trial and error with writing to disk and reading from disk before sending it off made it all work.
